2011-11-29 63 views
1

處理時區我有一個簡單的計時器倒計時的HTML頁面Javascript的日期

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> 
<meta content="width=device-width, initial-scale=1" name="viewport"> 
<title>Countdown</title> 
<style type="text/css"> 
@import "http://keith-wood.name/css/jquery.countdown.css"; 

#defaultCountdown { width: 240px; height: 45px; } 
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://keith-wood.name/js/jquery.countdown.js"></script> 
<script type="text/javascript"> 
$(function() { 
    var austDay = new Date(); 
    austDay = new Date("December 9, 2011 11:30:00"); 
    $('#defaultCountdown').countdown({until: austDay}); 
    $('#year').text(2011); 
}); 
</script> 
</head> 
<body> 
<h2>Countdown</h2> 
<p>Counting down to 11:30am Dec 9th, <span id="year">2011</span>.</p> 
<div id="defaultCountdown"></div> 
</body> 
</html> 

問題是,它不處理時區的正確。例如,它顯示了我的時區中正確的倒計時,但如果有人從CST的說法中看到它,它會關閉2個小時。在Javascript代碼中設置Date的正確方法是什麼?現在,我有這個

austDay = new Date("December 9, 2011 11:30:00"); 

回答

1

不知道這將如何與倒計時插件互動......

austDay = new Date(Date.UTC(year, month, day, hour, minute, second)); 
+0

這應該工作,但它不,我不知道爲什麼。首先,在12月份指定12月份的UTC時間,將實際日期放在1月份? – Bob

+0

月份爲零索引。其他一切都應該是正常的。 http://www.w3schools.com/jsref/jsref_utc.asp – nachito

+0

Dudh,我從來沒有注意到,謝謝你的提示。它仍然沒有工作,但與CST仍有2小時不同。 – Bob

1

你可以這樣做:

var tz = d.getTimezoneOffset(); 
var date = new Date("December 9, 2011 11:30:00"); 
austDay = date.setMinutes(date.getMinutes() + tz); 
+0

感謝您的建議,但不適用於插件 – Bob