有關日期Date
如果跟時間相關的,記得本地環境與雲端 server 獲取到的 Date.now 因為時區關係可能不同,部署後要去設置雲端 server 時區。
date // 查看當前 server 時間
timedatectl list-timezones // 查看所有可設置的時區
sudo timedatectl set-timezone Asia/Taipei // 設置時區
時間範圍區間檢測
const phaseConfig = {
"phase-A": {
start: "2022-03-31 13:23:50",
end: "2022-04-30 19:00:00",
}
}
const { start, end } = phaseConfig[phase];
const isWithinTime = withinTime(start, end);
if (!isWithinTime.success) {
return isWithinTime;
}
function withinTime(start, end) {
const toTimestamp = (strDate) => {
var datum = Date.parse(strDate);
return datum / 1000;
};
const now = Date.now();
if (start && Number(`${toTimestamp(start)}000`) > now) {
return {
success: false,
date: [start, end],
message: "Not available yet",
};
}
if (end && Number(`${toTimestamp(end)}000`) < now) {
return {
success: false,
date: [start, end],
message: "Already expired",
};
}
return {
success: true,
date: [start, end],
message: "Within time",
};
}
有關日期
Date.now()
1480399826585
new Date()
Tue Nov 29 2016 14:10:18 GMT+0800 (CST)
將date字串轉為timestamp
new Date().getTime()
1480399892808
將timestamp轉為new Date()
new Date(timestamp);
轉為ISO
new Date().toISOString();
2016-11-29T06:06:04.276Z
現在時間減十天 ex:將"2017-04-11" 轉為 "2017-04-01"
(new Date(Date.now() - 60*60*1000*24*10)).toISOString().substring(0,10)
注意事項
1.new Date(1496716816519) 在browser會比node環境多8小時
因為new Date會自動判斷當下時區UTC去做timestamp加減
Last updated