我承认我是一个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
变量 - 对吗?
有人可以解释这样做的正确方法吗?感谢。
答案 0 :(得分:2)
每个时间戳之间有86400(即1/1000天)。
您正在计算(在strtotime
中),好像时间戳是秒,但它们是毫秒。