2011-11-29 62 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