Unix 時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
以下2個方法源自於時間工具包:time utils
效果展示:線上時間戳轉換工具
時間轉時間戳
/**
* 將某個時間轉化成時間戳
* 時間格式:2019-05-20 00:00:00 或 2019年5月1日 00:00:00
* 返回值:1556640000000,13位時間戳
*/
function Jh_convertTimeStamp(time: string): number {
// 用正則主要是把“2019-05-20 00:00:00”轉換成“2019/05/20 00:00:00”相容ios
let newTime = time.replace(/-|\./g, '/')
// console.log(newTime);
// newTime = newTime.replace(/\./g, "-");
newTime = newTime.replace(/年/g, '/')
newTime = newTime.replace(/月/g, '/')
newTime = newTime.replace(/日/g, '')
if (newTime.length === 4) {
newTime = newTime + '/01/01 00:00:00'
}
if (newTime.length === 7) {
newTime = newTime + '/01 00:00:00'
}
if (newTime.length === 10) {
newTime = newTime + ' 00:00:00'
}
if (newTime.length === 16) {
newTime = newTime + ':00'
}
return Date.parse(newTime)
}
使用示例
let res = Jh_convertTimeStamp('2024-05-31 14:16:39')
時間戳轉換時間
/**
* 將某個時間戳轉化成 指定格式時間
* @param {date} time 時間 new Date().getTime()
* @param {string} cFormat {y}-{m}-{d} {h}:{i}:{s} {w}
*/
function Jh_timeStampToTime(time: string | number | Date, cFormat: string): string {
if (arguments.length === 0) {
return ''
}
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
let date: Date
if (typeof time === 'object') {
date = time as Date
} else {
if (('' + time).length === 10) time = parseInt(time as string) * 1000
date = new Date(time)
}
const formatObj: any = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
w: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|w)+}/g, (result, key) => {
let value = formatObj[key]
if (key === 'w') {
return ['日', '一', '二', '三', '四', '五', '六'][value]
}
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
使用示例:
let res = Jh_timeStampToTime(1717136199178, '{y}-{m}-{d} {h}:{i}:{s}')
Tools-Web是一個免費開源工具站;只需簡單幾步,即可快速搭建屬於自己的綜合工具站,支援docker一鍵部署。