在之前的一个问题中,我写了一篇关于javascript日期函数的信息,这个函数在11/07/101神秘地停止了.感谢stackoverflow用户,我被告知我的问题是夏令时. Javascript日期,这是我的错误还是我发现了一个错误?
所以我对此的最后一个问题是Javascript中推荐的处理夏令时的方法是什么?
是http://code.google.com/p/datejs/解决这个最好的方法?
bob*_*nce 21
最好的方法是不要处理夏令时.使用UTC方法,您不必担心跨越DST边界或任何其他时区不连续(区域设置时区规则可能因为更多原因而不仅仅是DST而更改).
var timestamp= Date.UTC(2010, 10-1, 31, 0, 0, 0); // zero-based month: 9->october
var nextday= new Date(timestamp+86400000); // add one day
var ymd= [
nextday.getUTCFullYear(),
nextday.getUTCMonth()+1, // zero-based month
nextday.getUTCDate()
].join('-');
alert(ymd); // 2010-11-1
Run Code Online (Sandbox Code Playgroud)
如果以上已做同new Date(2010, ...)和getDate()等,它会返回2010-10-31,一天添加到DST改变失败的原因(在我区,反正).
遗憾的是,"默认"最明显的方法Date是关于本地时间,特别是因为JavaScript在"本地时间"实际上为脚本提供了非常少的上下文.UTC是一个更稳定的主张.
| 归档时间: |
|
| 查看次数: |
17706 次 |
| 最近记录: |