時間戳與yyyy-mm-dd hh:mm:ss格式之間的互相轉換

南风晚来晚相识發表於2024-05-26

將時間戳轉化為 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 不一定可以正確解析以 - 分割的日期格式,最好使用 /

相關文章