大家好,又见面了,我是你们的朋友全栈君。
JavaScript 时间戳格式化日期
项目中从后台获取接口数据时常需要按自己的需求将时间戳转化为对应的日期格式。
代码语言:javascript复制// 时间戳格式化为日期
function formatDate(timestamp, fmt) {
// 这里传入的timestamp应该是Number数值,如果是字符串,需要先转换为Number
// var timestamp=parseInt(timestamp)
var date = new Date(timestamp)
if (/(y )/.test(fmt)) {
// $1标识第一个子串中的内容;这里当fmt格式中年份少于4位时,从后往前取
fmt = fmt.replace(RegExp.$1, (date.getFullYear() "").substr(4 - RegExp.$1.length));
}
let o = {
"M ": date.getMonth() 1,
"d ": date.getDay(),
"h ": date.getHours(),
"m ": date.getMinutes(),
"s ": date.getSeconds()
};
for (let key in o) {
if (new RegExp(`(${
key})`).test(fmt)) {
let str = o[key] "";
fmt = fmt.replace(RegExp.$1, str.length === 2 ? str : padLeftZero(str));
}
}
return fmt;
}
// 函数padLeftZero的作用:如果月份为1位(如9),则在其左边补0(变为09)
function padLeftZero(str) {
return "0" str.substr(str.length - 1)
}
// 举例. timestamp格式应为13位,时间戳为10位的话,需要x1000
let res = formatDate(1469261934000, 'yyyy/MM/dd hh:mm:ss');
console.log(res); //2016/07/06 16:18:54
**增加日期转化为时间戳方法,此处暂未考虑兼容性问题,后期可优化补充。
代码语言:javascript复制// 时间戳格式化为日期
function formatTimestamp(dateNow) {
let date=new Date(dateNow);
// 方式1
// const time1=date.getTime();
// 方式2
// const time1=date.valueOf();
// 方式3
const time1=Date.parse(dateNow);
return time1;
}
let res = formatTimestamp('2016/07/06 16:18:54');
console.log(res); //1467793134000
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/215451.html原文链接:https://javaforall.cn