如果日期(來自 cookie)超過 2 天,我正在嘗試執行代碼。或多或少,它不必精確。
cookie 值為:2022-06-27T23:28:02.816Z
function getCookie(name) {
var value = "; " document.cookie;
var parts = value.split("; " name "=");
if (parts.length == 2) return parts.pop().split(";").shift();
}
使用 :
getCookie(name) and : .slice(0, 10);
回傳:2022-06-27 因此我現在有一個 YYYY-MM-DD 值
var stuff_cookiename = getCookie("cookiename").slice(0, 10);
轉換為日期格式:
var t_date_refuscmp_todate = Date.parse(stuff_cookiename);
我現在有這樣的東西:1656288000000
現在我想比較一下現在的日期 - 2 天所以我這樣做:
var t_date_verif = new Date();
var t_date_verif_format = tc_date_verif.setDate(tc_date_verif.getDate() - 2);
這給我帶來了類似的東西:1656199936800
======================
但是,如果我比較我的 cookiedate 與 todaysdate -2 天,它似乎并不總是正常作業。
t_date_refuscmp_todate < t_date_verif_format !!!
知道我做錯了什么嗎?也許有一些更容易做的事情:)
謝謝 !
uj5u.com熱心網友回復:
^ 我認為更具體(針對您的問題)和更簡單的答案
var diff = Date.now() - new Date("2022-06-25T23:28:02.816Z");
if(diff <= 1000 * 60 * 60 * 24 * 2){
console.log("less than 2 days old");
}else{
console.log("more than 2 days old");
}
uj5u.com熱心網友回復:
主意
決議 cookie 和當前日期時間,將其轉換為 epoch ms,計算天差。
代碼
let s_dtCookie = "2022-06-27T23:28:02.816Z"
, n_epochCookie = (new Date(s_dtCookie)).getTime()
, n_epochNow = (new Date()).getTime()
, n_deltaDays = (n_epochNow - n_epochCookie) / (24 * 3600 * 1000)
;
console.log(`Cookie time '${s_dtCookie}' is ${n_deltaDays} days in the past.`);
參考
MDN JS 檔案,Date.getTime()部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/496823.html
標籤:javascript 日期 约会时间 比较
