0


js时间格式化和转换的方法

近期在练习或写项目时经常会遇到时间格式的转换问题,今天我就来总结一下。

1、将日期转换为指定格式(yyyy-MM-dd hh:mm:ss等格式)

封装方法format

//date指的是new Date(),fmt是格式化的格式format=(date,fmt)=>{var o ={"M+": date.getMonth()+1,//月份 "d+": date.getDate(),//日 "h+": date.getHours(),//小时 "m+": date.getMinutes(),//分 "s+": date.getSeconds(),//秒 "q+": Math.floor((date.getMonth()+3)/3),//季度 "S": date.getMilliseconds()//毫秒 };//(y+)匹配多个y,比如yyyyif(/(y+)/.test(fmt)){// RegExp.$1是RegExp的一个属性,指的是与正则表达式匹配的第一个 子匹配(以括号为标志)字符串
            fmt=fmt.replace(RegExp.$1,(date.getFullYear()+"").substr(4- RegExp.$1.length));}for(var k in o){if(newRegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+ o[k]).substr((""+ o[k]).length)));}}return fmt;}
   console.log(format(newDate(),'yyyy/MM/dd'))//2022/09/03
   console.log(format(newDate(),'yyyy/MM/dd hh:mm:ss'))//2022/09/03 16:11:41
   console.log(format(newDate(),'mm:ss'))//18:28

也可以为Date原型直接添加format方法

Date.prototype.format=function(fmt){var o ={"M+":this.getMonth()+1,//月份 "d+":this.getDate(),//日 "h+":this.getHours(),//小时 "m+":this.getMinutes(),//分 "s+":this.getSeconds(),//秒 "q+": Math.floor((this.getMonth()+3)/3),//季度 "S":this.getMilliseconds()//毫秒 };if(/(y+)/.test(fmt)){
            fmt=fmt.replace(RegExp.$1,(this.getFullYear()+"").substr(4- RegExp.$1.length));}for(var k in o){if(newRegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1,(RegExp.$1.length==1)?(o[k]):(("00"+ o[k]).substr((""+ o[k]).length)));}}return fmt;}//使用
console.log(newDate().format("yyyy:MM:dd")//2022:09:03
2.将时间戳转换为年月日的格式
//时间戳转换为yyyy-MM-dd hh:mm:ss//timestamp(秒为单位)时间戳exportfunctionformat(timestamp){var date =newDate(timestamp *1000);varY= date.getFullYear()+"-";varM=(date.getMonth()+1<10?"0"+(date.getMonth()+1): date.getMonth()+1)+"-";varD=(date.getDate()<10?"0"+ date.getDate(): date.getDate())+" ";var h =(date.getHours()<10?"0"+ date.getHours(): date.getHours())+":";var m =(date.getMinutes()<10?"0"+ date.getMinutes(): date.getMinutes())+":";var s =
    date.getSeconds()<10?"0"+ date.getSeconds(): date.getSeconds();returnY+M+D+ h + m + s;}

或者获取到date之后结合format使用

3.将时间转换为时间戳
var date =newDate('2022-9-03');
//方式一,得到的是毫秒var time1 = date.getTime();
//方式二,得到的是毫秒var time2 = date.valueOf();

注:Unix 时间戳是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数


本文转载自: https://blog.csdn.net/CYL_2021/article/details/126679340
版权归原作者 儒雅的曹曹曹 所有, 如有侵权,请联系我们删除。

“js时间格式化和转换的方法”的评论:

还没有评论