我製作了一小段代碼片段。告訴你你多大了,到第二個。我們在12月(夏令時)獲得了一個小時
但我發現了一些奇怪的東西。我知道時間和時區是一個噩夢,但這屬於我自己的國家和時區,所以我有點困惑。
如果我輸入日期。 27-12-2013(DD-MM-YYYY),它會顯示:
這是正確的。現在的時間是08:42。該getTimezoneOffset() is -60
但是,如果我回去了一天,它會顯示這樣的:
它增加了一小時!?這是它發生的唯一日期,我有點困惑,因爲夏令時只適用於春季和秋季。 getTimezoneOffset() is ALSO -60
希望您能對此有所瞭解。
時區:http://www.timezoneconverter.com/cgi-bin/zoneinfo?s=standard&tz=Europe/Copenhagen 的Javascript:GMT + 0100(浪漫標準時間)
國家:丹麥
的jsfiddle:http://jsfiddle.net/d6kBJ/4/
var $output = $(".js-ageoutput");
var bd = new Date(2000, 0, 01);
bd.setHours(0);
bd.setMinutes(0);
bd.setSeconds(0);
function showTotalAge() {
var ageDifMs = Date.now() - bd.getTime();
var ageDate = new Date(ageDifMs); // miliseconds from epoch
displayAge(ageDate)
loopAge();
}
function displayAge(age) {
var yearOld = Math.abs(age.getFullYear() - 1970);
var months = age.getMonth();
var days = age.getDate() - 1;
var h = age.getHours() - 1;
var m = age.getMinutes();
var s = age.getSeconds();
$output.html(yearOld + ' years <br/>' + months + ' months <br/>' + days + ' days <br/>' + h + 'hours <br/>' + m + ' minutes <br/>' + s + ' seconds<br/>');
}
function loopAge() {
setTimeout(showTotalAge, 1000);
}
loopAge();
$(".js-birthday").change(function() {
var vArr = $(this).val().split('-');
bd = new Date(vArr[0], parseInt(vArr[1], 10) - 1, vArr[2]);
bd.setHours(0);
bd.setMinutes(0);
bd.setSeconds(0);
console.log(bd);
});
沒有什麼可以理解的。只需創建一個Date對象並檢查getTimezoneOffset是否返回。儘管對我來說似乎很奇怪,但至少在十月份會發生 - 至少對於歐洲國家來說。 – MaxArt
@MaxArt,你怎麼看? Theres很多理解。這很奇怪,也是你的「建議」,它使得它更加怪異,偏移量也完全相同。兩個日期抵消是'-60' –