0

私は JS の初心者であり、PHP のバックグラウンドを持っているため、私のスコープの考え方は Javascript のそれとは明らかに異なります。

// There's a date set, so begin processing
var original_date       = new Date($('input#tour_encoded_dates').val());
var date_search_string  = ''; 
var day_limit           = 14;
var timestamp           = '';

// Go forwards day_limit days
for(var i = 0; i < day_limit; i++) {
    timestamp = strtotime('+'+i+' days', original_date);
    calculated_date = new Date(timestamp).format('Y-m-d');
    date_search_string += calculated_date + ' ';
}

console.log(date_search_string);

からの出力console.log()は次のとおりです。

2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10 2013-10-10

反復ごとに日付が 1 日増えると予想していましたが、同じままです。

参考までに、ループの最終行をdate_search_string += timestamp + ' ';出力に変更すると、次のようになります。

1381363200000 1381363286400 1381363372800 1381363459200 1381363545600 1381363632000 1381363718400 1381363804800 1381363891200 1381363977600 1381364064000 1381364150400 1381364236800 1381364323200

問題は明らかにcalculated_date変数にあります。

誰かがこれを行う適切な方法を説明できますか? ありがとう。

4

1 に答える 1

2

各タイムスタンプの間には 86400 (つまり 1/1000 日) があります。

strtotimeタイムスタンプが秒であるかのように計算していますが、ミリ秒です。

于 2013-10-10T20:58:22.210 に答える