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 相关文章推荐
js中window.open()的所有参数详细解析
Jan 09 Javascript
基于jquery实现动态竖向柱状条特效
Feb 12 Javascript
JS实现的五级联动菜单效果完整实例
Feb 23 Javascript
JavaScript内存泄漏的处理方式
Nov 20 Javascript
zTree树形菜单交互选项卡效果的实现方法
Dec 25 Javascript
用ES6写全屏滚动插件的示例代码
May 02 Javascript
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
Sep 18 Javascript
实例讲解JavaScript截取字符串
Nov 30 Javascript
记一次用vue做的活动页的方法步骤
Apr 11 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
Apr 22 Javascript
vue实现日历表格(element-ui)
Sep 24 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
Yii2单元测试用法示例
2016/11/12 PHP
PHP连接SQL server数据库测试脚本运行实例
2020/08/24 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
解决Angular.Js与Django标签冲突的方案
2016/12/20 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
详解vue 在移动端体验上的优化解决方案
2019/05/20 Javascript
图解javascript作用域链
2019/05/27 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
vue实例的选项总结
2020/06/09 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
python使用reportlab实现图片转换成pdf的方法
2015/05/22 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
python Celery定时任务的示例
2018/03/13 Python
详解python校验SQL脚本命名规则
2019/03/22 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
利用Python实现Excel的文件间的数据匹配功能
2020/06/16 Python
Python 使用 PyQt5 开发的关机小工具分享
2020/07/16 Python
Django DRF认证组件流程实现原理详解
2020/08/17 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
TripAdvisor斯洛伐克:阅读评论、比较价格和酒店预订
2018/04/25 全球购物
美国知名眼镜网站:Target Optical
2020/04/04 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
法学专业个人求职信
2013/09/26 职场文书
毕业生教师求职信
2013/10/20 职场文书
2014年两会学习心得体会
2014/03/10 职场文书
寒暑假实习证明书模板
2014/11/29 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
承诺书应该怎么写?
2019/09/10 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python