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 相关文章推荐
prototype 学习笔记整理
Jul 17 Javascript
javascript 面向对象编程  function是方法(函数)
Sep 17 Javascript
基于javascript 闭包基础分享
Jul 10 Javascript
javascript打印html内容功能的方法示例
Nov 28 Javascript
webpack+vue.js实现组件化详解
Oct 12 Javascript
TypeScript学习之强制类型的转换
Dec 27 Javascript
JavaScript编写一个贪吃蛇游戏
Mar 09 Javascript
JavaScript 中Date对象的格式化代码方法汇总
Sep 06 Javascript
微信小程序实现默认第一个选中变色效果
Jul 17 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
Laravel 如何在blade文件中使用Vue组件的示例代码
Jun 28 Javascript
封装 axios+promise通用请求函数操作
Aug 11 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
Yii2搭建后台并实现rbac权限控制完整实例教程
2016/04/28 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
javascript 用原型继承来实现对象系统
2010/03/22 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
js正则表达式replace替换变量方法
2016/05/21 Javascript
AngularJS 指令详细介绍
2016/07/27 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
vue resource post请求时遇到的坑
2017/10/19 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
JS算法教程之字符串去重与字符串反转
2020/12/15 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
python实现ip查询示例
2014/03/26 Python
详解Python中的正则表达式的用法
2015/04/09 Python
Python中用于检查英文字母大写的isupper()方法
2015/05/19 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
python机器学习案例教程——K最近邻算法的实现
2017/12/28 Python
python 读取txt,json和hdf5文件的实例
2018/06/05 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
django创建超级用户过程解析
2019/09/18 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
物流合作计划书
2014/01/10 职场文书
学术会议邀请函范文
2014/01/22 职场文书
40岁生日感言
2014/02/15 职场文书
《晚上的太阳》教学反思
2014/04/23 职场文书
行政助理岗位职责
2015/02/10 职场文书