我在 DST 转换期间将日期时间字符串转换为 unix ms 时间戳时遇到了 iOS 8.2 Safari 的一种奇怪行为。假设我们有 js 代码
function date2unix(dates){
var len = dates.length;
var result = [], arr;
while(len--) {
arr = dates[len].split(/[- :]/);
result[len]= (new Date(arr[0], arr[1]-1, arr[2], arr[3],arr[4],arr[5]).getTime());
}
return result;
}
var dates =
["2015-03-29 00:00:00","2015-03-29 00:15:00","2015-03-29 00:30:00","2015-03-29 00:45:00","2015-03-29 01:00:00","2015-03-29 01:15:00","2015-03-29 01:30:00","2015-03-29 01:45:00","2015-03-29 03:00:00","2015-03-29 03:15:00","2015-03-29 03:30:00","2015-03-29 03:45:00"];
alert(date2unix(dates))
iOS 8.2 Safari 给出了模棱两可的值(1st == 5th, 2nd == 6th, ...),而 chrome 41.0.2272.101 行为正确。请注意,数组日期中省略了有争议的第 2 小时。有人可以帮我找到解决方法吗?
试试:http: //jsfiddle.net/q6vd0fos/
问候