4 dojo
我有跟随dojo dojo Date文本类型的文本字段.
dojoType ="dijit.form.DateTextBox"required ="true"/>
我使用以下代码来设置dijit.form.DateTextBox值
dijit.byId('dtinv').attr('value',new Date(tList [i] .getAttribute("dtinv")));
tList [i] .getAttribute("dtinv")的值为2010-04-02
设置值后,我会看到4/1/2010.始终在dojo日期框中显示的日期少一天.有什么我应该照顾的吗?
Dojo和Dijit在当地时间处理日期,而不是GMT,这本身可能是一个糟糕的设计选择,但鉴于此,如果您使用dojo.date.stamp.fromISOString()或传递字符串"2010-04-02"作为HTML中的值属性,您将获得4月2日当地时间午夜.将它传递给Dijit,它会很开心.在Javascript中使用新的ES5 Date构造函数会有不同的结果:
(我在东部时区)
>>> new Date("2010-04-02")
Thu Apr 01 2010 20:00:00 GMT-0400 (EST) {}
Run Code Online (Sandbox Code Playgroud)
用GMT定义日期.但是,以下对象将与Dijit一样正常工作:
>>> new Date(2010, 3, 2)
Fri Apr 02 2010 00:00:00 GMT-0400 (EST) {}
Run Code Online (Sandbox Code Playgroud)
此外,在使用字符串时,Javascript的新Date构造函数定义不明确.我不确定您获得的结果是否在所有浏览器中都是一致的.建议您使用dojo.date.stamp.fromISOString("2010-04-02")新的浏览器中的相应Date对象或ES5 ISO日期方法.
| 归档时间: |
|
| 查看次数: |
9231 次 |
| 最近记录: |