私は2011年7月6日水曜日から隔週のスケジュールに基づいて次のリサイクルの日付を与える簡単なスクリプトを作成しようとしています。これまでのところ。シンプルなjavascriptの日付数...本当に
function getNextDate(startDate) {
if (today <= startDate) {
return startDate;
}
// calculate the day since the start date.
var totalDays = Math.ceil((today.getTime()-startDate.getTime())/(one_day));
// check to see if this day falls on a recycle day
var bumpDays = totalDays%14; // mod 14 -- pickup up every 14 days...
// pickup is today
if (bumpDays == 0) {
return today;
}
// return the closest day which is in 14 days, less the # of days since the last
// pick up..
var ms = today.getTime() + ((14- bumpDays) * one_day);
return new Date(ms);
}
など、それを呼び出すことができます...
var today=new Date();
var one_day=1000*60*60*24; // one day in milliseconds
var nextDate = getNextDate(new Date(2011,06,06));
とても良い...しかし、私は2011年10月27日に「今日」を投影したときに、私は火曜日11/8取得2011年10月27日水曜日の代わりに次の日付として/ 2011 ...実際に毎日今から10/26/2011が正しいピックアップをプロジェクト...そして10/27/2011から2までの各日付/ 28/2012は、水曜日ではなく火曜日を計画しています。そして、2012年2月29日(閏年)から2012年10月24日(午後10月)までの各日付は水曜日に正しく投影されます。私は何が欠けていますか?すべてのヘルプは非常にこれを行う最も簡単な方法は、setDate
を使用してDate
オブジェクトを更新です
V
床に座ってはいけませんか?あなたが2011年6月1日を使用しているので、1:00u totalDaysは1になり、次のピックアップは火曜日に14日ではなく13日になります。 – Gerben
奇妙に見えます。 'one_day = 1000 * 60 * 60 * 24;で正しい日付を取得しています。今日=新しい日付(2011,8,27); nextDate = getNextDate(new Date(2011,6,6)); '、nextDateはWed Sep 28 2011 00:00:00 GMT +'ですが、これは正しいですか? FF4でテスト済み。 – Raze
startDateは常に新しい日付(2011,06,06) - 移動しないでください – user799301