时间戳与yyyy-mm-dd hh:mm:ss格式之间的互相转换

将时间戳转化为 yyyy-mm-dd hh:mm:ss

function backTime(value){
  // value必须是一个毫秒级的时间戳哈;
  // 如果出现的不是一个毫秒级的时间戳,将会出现转化为 1970开始
  let date = new Date(value);  
  // 获取年份、月份和日期  
  let year = date.getFullYear();  
  // 月份从 0 开始,需要加 1  
  let month = date.getMonth() + 1; 
  let day = date.getDate();  
  let hours = date.getHours();  
  let minutes = date.getMinutes();  
  let seconds = date.getSeconds(); 
  // 格式化月份和日期为两位数(不足两位时补零)  
  month = month < 10 ? '0' + month : month;  
  day = day < 10 ? '0' + day : day;  
  hours = hours < 10 ? '0' + hours : hours;  
  minutes = minutes < 10 ? '0' + minutes : minutes;  
  seconds = seconds < 10 ? '0' + seconds : seconds;  
  // 返回格式化后的字符串  
  return year + '-' + month + '-' + day +' ' + hours + ':' + minutes + ':' + seconds;
}
//再次提醒,转化必须是一个毫秒级的时间戳哈
console.log(backTime(1688385600000))
// 输出的值是: 2023-07-03 20:00:00

将 yyyy-mm-ss hh:mm:ss 转化为时间戳,使用new date()

第一种

// 获取2022年1月1日13时23分45秒的时间戳
// 需要注意参数第2位,表示的是月份,从0-11;0表示的是1月份
// 参数分别是 年份、月份[0-11之间的数字0表示1月)]、日、时、分、毫秒
let dateTimeStamp = new Date(2022, 0, 1,13,23,45).getTime();
console.log(dateTimeStamp) // 1641014625000

第2种 [推荐] 传递一个正确的日期字符串,以/分割

let dateTimeStamp = new Date('2024/05/26 14:34:45').getTime();
console.log(dateTimeStamp) // 1716705285000

如果格式是 yyyy-mm-dd hh:mm:ss格式,可以使用replace()方法替换掉-

// 全局替换掉-
let strDate = '2024-02-26 12:45:15'.replace(/-/g,'/')
let dateTimeStamp = new Date(strDate).getTime();
console.log(dateTimeStamp) // 1708922715000
为啥要全局替换掉-呢?
// iso 不一定可以正确解析以 - 分割的日期格式,最好使用 /
posted @ 2024-05-26 13:10  南风晚来晚相识  阅读(59)  评论(0编辑  收藏  举报