JavaScript設定間隔は自動的に次の日付を取得します.
1501 ワード
最近は自動シフト機能を書いていますが、設定された時点を超えて、自動的に次のサイクルにカウントされます.以下はコアJSコードです.
説明:本例で設定したタイムアウト時間は毎週金曜日17:20である. 本例で設定した間隔周期は7日間で です.本例では、JSにおけるdateタイプ(非フォーマットString) が返される.
説明:
//Get next date(liangxin 2020-09-11)
//Out JS date format
function getNextDate(){
var now = new Date();
var year = now.getFullYear();
var date= now.getDate();
var month = now.getMonth();
var day = now.getDay();
var hour = now.getHours();
var minute = now.getMinutes();
if(day == 5 && hour == 15 && minute >20 ){
var nextDate = AddDays(getDate(year+"-"+month+"-"+date+" 00:00:00"),7)+" 17:00:00" ;
return getDate(nextDate);
}else{
return getDate(year+"-"+month+"-"+date+" 17:00:00");
}
}
//Date add days
function AddDays(date,days){
var nd = new Date(date);
nd = nd.valueOf();
nd = nd + days * 24 * 60 * 60 * 1000;
nd = new Date(nd);
var y = nd.getFullYear();
var m = nd.getMonth();
var d = nd.getDate();
if(m <= 9) m = "0"+m;
if(d <= 9) d = "0"+d;
var cdate = y+"-"+m+"-"+d;
return cdate;
}
//String to date foramt
function getDate(strDate) {
var st = strDate;
var a = st.split(" ");
var b = a[0].split("-");
var c = a[1].split(":");
var date = new Date(b[0], b[1], b[2], c[0], c[1], c[2]);
return date;
}
// JSON
console.log(getNextDate());