JS时间戳与日期格式互相转换的简单方法示例


Posted in Javascript onJanuary 30, 2021

前端时间格式转时间戳的几种方法

<script type="text/javascript">
			var date=new Date();
			console.log(date);//Wed Feb 13 2019 11:40:45 GMT+0800 (中国标准时间)
			// 1:不推荐这种办法,毫秒级别的数值被转化为000
			var timeStamp1=Date.parse(date);
			console.log(timeStamp1);//1550029245000
			// 2:通过valueOf()函数返回指定对象的原始值获得准确的时间戳值
			var timeStamp2=date.valueOf();
			console.log(timeStamp2);//1550029245434
			// 3:通过原型方法直接获得当前时间的毫秒值,准确
			var timeStamp3=date.getTime();
			console.log(timeStamp3);//1550029245434
			// 4:将时间转化为一个number类型的数值,即时间戳
			var timeStamp4=Number(date);
			console.log(timeStamp4);//1550029245434
		</script>

JS和jQuery用了一段时间,最近发现他们没有自带的时间戳格式化函数,于是综合网上相关的时间戳格式化函数,自己写了一个时间戳格式化函数DateToTime,这个函数提供了多种格式化样式:

Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m月d日,Y年m月d日 H:i:s

这里的时间有时仅输入Y-m-d H:i也是可以使用的

/**
 * [TimeToDate时间戳转换为日期]
 * @param {[type]} unixTime [时间戳]
 * @param {String} type     [Y-m-d,Y-m-d H:i:s,Y/m/d,Y/m/d H:i:s,Y年m月d日,Y年m月d日 H:i:s]
 */
function TimeToDate(unixTime,type="Y-M-D H:i:s"){
    var date = new Date(unixTime * 1000);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
    var datetime = "";
    datetime += date.getFullYear() + type.substring(1,2);
    datetime += (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + type.substring(3,4);
    datetime += (date.getDate() < 10 ? '0'+(date.getDate()) : date.getDate());
    if (type.substring(5,6)) {
        if (type.substring(5,6).charCodeAt() > 255) {
            datetime += type.substring(5,6);
            if (type.substring(7,8)) {
                datetime += " " + (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours());
                if (type.substring(9,10)) {
                    datetime += type.substring(8,9) + (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes());
                    if (type.substring(11,12)) {
                        datetime += type.substring(10,11) + (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds());
                    };
                };
            };
        }else{
            datetime += " " + (date.getHours() < 10 ? '0'+(date.getHours()) : date.getHours());
            if (type.substring(8,9)) {
                datetime += type.substring(7,8) + (date.getMinutes() < 10 ? '0'+(date.getMinutes()) : date.getMinutes());
                if (type.substring(10,11)) {
                    datetime += type.substring(9,10) + (date.getSeconds() < 10 ? '0'+(date.getSeconds()) : date.getSeconds());
                };
            };
        };
    };
    return datetime;
}
TimeToDate("1515640111");    //2018-01-11 11:08:31
TimeToDate("1515640111","Y-m-d");    //2018-01-11
TimeToDate("1515640111","Y-m-d H:i");    //2018-01-11 11:08
TimeToDate("1515640111","Y-m-d H:i:s");    //2018-01-11 11:08:31
TimeToDate("1515640111","Y/m/d");    //2018/01/11
TimeToDate("1515640111","Y/m/d H:i:s");    //2018/01/11 11:08:31
TimeToDate("1515640111","Y年m月d日");    //2018年01月11日
TimeToDate("1515640111","Y年m月d日 H:i:s");    //2018年01月11日 11:08:31
/**
 * [DateToTime 日期转换时间戳]
 * @param {[type]} day [日期格式,仅支持标准格式]
 */
function DateToTime(day){
	// re = /(\d{4})(?:-(\d{1,2})(?:-(\d{1,2}))?)?(?:\s+(\d{1,2}):(\d{1,2}):(\d{1,2}))?/.exec(day); // 原
	re = /(\d{4})(?:\D?(\d{1,2})(?:\D?(\d{1,2}))?[^\d\s]?)?(?:\s+(\d{1,2})\D?(\d{1,2})\D?(\d{1,2}))?/.exec(day);
	return new Date(re[1],(re[2]||1)-1,re[3]||1,re[4]||0,re[5]||0,re[6]||0).getTime()/1000;
}
DateToTime("2018-01-11 11:08:31");
DateToTime("2018-01-11");
DateToTime("2018年01月11日 11时08分31秒");
DateToTime("2018");

补充时间戳与日期相互转换:

function TimeToDate(date,format) {
 format = format || 'YYYY-MM-DD hh:mm:ss';
 var dateTest = (/^(-)?\d{1,10}$/.test(date) || /^(-)?\d{1,13}$/.test(date));
 if(/^[1-9]*[1-9][0-9]*$/.test(date) && dateTest){
  var vdate = parseInt(date);
  if (/^(-)?\d{1,10}$/.test(vdate)) {
   vdate = vdate * 1000;
  } else if (/^(-)?\d{1,13}$/.test(vdate)) {
   vdate = vdate * 1000;
  } else if (/^(-)?\d{1,14}$/.test(vdate)) {
   vdate = vdate * 100;
  } else {
   alert("时间戳格式不正确");
   return;
  }
  var setdate = new Date(vdate);
  return parse({YYYY:setdate.getFullYear(), MM:digit(setdate.getMonth()+1), DD:digit(setdate.getDate()) , hh:digit(setdate.getHours()), mm:digit(setdate.getMinutes()), ss:digit(setdate.getSeconds()) }, format);
 }else {
  //将日期转换成时间戳
  var arrs = date.match(/\w+|d+/g),
   newdate = new Date(arrs[0],parseInt(arrs[1])-1,arrs[2],arrs[3]||0,arrs[4]||0,arrs[5]||0),
   timeStr = Math.round(newdate.getTime() / 1000);
  return timeStr;
 }

 function parse(ymdhms, format) {
  var regymdzz = "YYYY|MM|DD|hh|mm|ss|zz";
  return format.replace(new RegExp(regymdzz,"g"), function(str, index) {
   return str == "zz" ? "00":digit(ymdhms[str]);
  });
 };
 function digit(num) {
  return num < 10 ? "0" + (num | 0) :num;
 };
};

总结

到此这篇关于JS时间戳与日期格式互相转换的文章就介绍到这了,更多相关JS时间戳与日期格式互相转换内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
HTML中不支持静态Expando的元素的问题
Mar 08 Javascript
javascript RadioButtonList获取选中值
Apr 09 Javascript
jquery中dom操作和事件的实例学习-表单验证
Nov 30 Javascript
首页图片漂浮效果示例代码
Jun 05 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
jquery滚动特效集锦
Jun 03 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
基于canvas实现的绚丽圆圈效果完整实例
Jan 26 Javascript
如何在Vue.js中实现标签页组件详解
Jan 02 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
jQuery实现获取多选框的值示例
Feb 07 jQuery
JavaScript实现班级抽签小程序
May 19 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
Nov 05 #Javascript
nuxt.js写项目时增加错误提示页面操作
Nov 05 #Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 #Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 #Javascript
Vue2.x和Vue3.x的双向绑定原理详解
Nov 05 #Javascript
nuxt引入组件和公共样式的操作
Nov 05 #Javascript
jQuery列表动态增加和删除的实现方法
Nov 05 #jQuery
You might like
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
javascript 写类方式之九
2009/07/05 Javascript
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
在Google 地图上实现做的标记相连接
2015/01/05 Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
2015/06/24 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
js下载文件并修改文件名
2017/05/08 Javascript
快速掌握jquery分页插件jqPaginator的使用方法
2017/08/09 jQuery
angularjs实现简单的购物车功能
2017/09/21 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
微信小程序实践之动态控制组件的显示/隐藏功能
2018/07/18 Javascript
jQuery实现导航样式布局操作示例【可自定义样式布局】
2018/07/24 jQuery
详解javascript appendChild()的完整功能
2018/08/18 Javascript
json前后端数据交互相关代码
2018/09/19 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
Python命名空间namespace及作用域原理解析
2020/06/05 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
请解释在new与override的区别
2012/10/29 面试题
《乌塔》教学反思
2014/02/17 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
员工旷工检讨书
2015/08/15 职场文书
领导干部学习十八届五中全会精神心得体会
2016/01/05 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server