簡體   English   中英

循環行為的JavaScript每次迭代輸出相同的結果

[英]Javascript for loop behaviour outputting the same result each iteration

我承認我是一個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

我希望每次迭代都會將日期增加一天,但是它們保持不變。

作為參考,如果我將循環的最后一行更改為date_search_string += timestamp + ' '; 輸出如下:

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

所以問題顯然出在calculated_date變量上,對嗎?

有人可以解釋這樣做的正確方法嗎? 謝謝。

每個時間戳之間有86400天(即1/1000天)。

您正在計算(在strtotime ),好像時間戳是秒,但它們是毫秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM