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 相关文章推荐
jquery load()在firefox(火狐)下显示不正常的解决方法
Apr 05 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
jquery五角星评分插件示例分享
Feb 21 Javascript
使用jQuery+EasyUI实现CheckBoxTree的级联选中特效
Dec 06 Javascript
浅析Jquery操作select
Dec 13 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
微信小程序 实现动态显示和隐藏某个控件
Apr 27 Javascript
vue实现商城购物车功能
Nov 27 Javascript
JavaScript数值类型知识汇总
Nov 17 Javascript
vue fetch中的.then()的正确使用方法
Apr 17 Javascript
canvas绘制折线路径动画实现
May 12 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
PHP通用检测函数集合
2011/02/08 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
常用PHP框架功能对照表
2014/10/23 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
PHP中phar包的使用教程
2017/06/14 PHP
input的focus方法使用
2010/03/13 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
javascript日期处理函数,性能优化批处理
2015/09/06 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
浅谈js script标签中的预解析
2016/12/30 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
如何阻止小程序遮罩层下方图层滚动
2019/09/05 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
用Python给文本创立向量空间模型的教程
2015/04/23 Python
在Django框架中编写Context处理器的方法
2015/07/20 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
澳大利亚珍珠首饰购物网站:Vayo Pearls
2019/03/11 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
英国在线定做百叶窗网站:Make My Blinds
2020/08/17 全球购物
外包公司软件测试工程师
2014/11/01 面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
求职简历自荐信
2014/06/18 职场文书
2014年民主评议党员工作总结
2014/12/02 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
《七月的天山》教学反思
2016/02/19 职场文书
修辞手法有哪些?
2019/08/29 职场文书
导游词之青城山景区
2019/09/27 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫