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 相关文章推荐
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 Javascript
JavaScript获取多个数组的交集简单实例
Nov 11 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
jQuery实现的简单分页示例
Jun 01 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
Jun 08 Javascript
详解jQuery事件
Jan 13 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
Jul 10 jQuery
详解JavaScript 异步编程
Jul 13 Javascript
使用 Github Actions 自动部署 Angular 应用到 Github Pages的方法
Jul 20 Javascript
vue-cli打包后本地运行dist文件中的index.html操作
Aug 12 Javascript
uniapp实现可以左右滑动导航栏
Oct 21 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
main.php
2006/12/09 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
javascript中interval与setTimeOut的区别示例介绍
2014/03/14 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
微信小程序后台解密用户数据实例详解
2017/06/28 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
layui的table中显示图片方法
2018/08/17 Javascript
vue中使用vee-validator完成表单校验方案
2019/11/01 Javascript
js函数柯里化的方法和作用实例分析
2020/04/11 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
UEditor 自定义图片视频尺寸校验功能的实现代码
2020/10/20 Javascript
vue中activated的用法
2021/01/03 Vue.js
使用python实现baidu hi自动登录的代码
2013/02/10 Python
Python中input与raw_input 之间的比较
2017/08/20 Python
浅谈Python Opencv中gamma变换的使用详解
2018/04/02 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
解决python运行效率不高的问题
2020/07/20 Python
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
优秀研究生自我鉴定
2013/12/04 职场文书
服装促销活动方案
2014/02/23 职场文书
爱心捐款倡议书范文
2014/05/12 职场文书
办公经费申请报告
2015/05/15 职场文书
返乡农民工证明
2015/06/24 职场文书
小学数学教学随笔
2015/08/14 职场文书
超市店长竞聘书
2015/09/15 职场文书
Redis可视化客户端小结
2021/06/10 Redis
手残删除python之后的补救方法
2021/06/26 Python
AJAX引擎原理以及XmlHttpRequest对象的axios、fetch区别详解
2022/04/09 Javascript
Go语言安装并操作redis的go-redis库
2022/04/14 Golang