如何以给定格式从 dijit.form.DateTextBox 获取日期?
Posted
技术标签:
【中文标题】如何以给定格式从 dijit.form.DateTextBox 获取日期?【英文标题】:How to get date from dijit.form.DateTextBox in given format? 【发布时间】:2011-04-12 12:28:27 【问题描述】:我在 html 文件中有一个 dojo 文本框。现在我想以字符串格式“yyyy-mm-dd”从文本框中检索日期。我该怎么做?
dojoType="dijit.form.DateTextBox"
我该怎么做?
【问题讨论】:
【参考方案1】:假设您使用dijit.byId(...)
或dijit.byNode(dojo.query(...))
之类的方式引用widget
到您的DateTextBox 小部件,这将获取javascript Date 对象并根据ISO 8601 标准(yyyy-mm-dd) 对其进行格式化,独立您碰巧使用的显示器或区域设置
dojo.require('dojo.date.stamp');
...
var dateObject = widget.get('value');
var isoFormat = dojo.date.stamp.toISOString(dateObject, selector: 'date');
【讨论】:
【参考方案2】:试试这个: HTML:
<input type="text" name="date1" id="date1" value="2005-12-30"
dojotype="dijit.form.DateTextBox" required="true" />
要获得显示的值,您可以使用日期文本框的这种方法:
// get widget:
var dtb = dijit.byId('date1');
// get value
alert(dtb.get('displayedValue'));
注意*:
Dojo 根据用户区域设置日期格式。
如果您可以使用与用户区域设置格式不同的格式,则需要为日期文本框指定约束属性。
<input type="text" name="date1" id="date1" value="2005-12-30"
constraints="datePattern:'yyyy-MM-dd', strict:true"
dojotype="dijit.form.DateTextBox" required="true" />
HTML Page - example
【讨论】:
您无需将视觉显示更改为 yyyy-mm-dd 即可实现此目的。 Dojo 保持 Date 属性独立于 displayValue @peller:是的,我知道。但是,如果我理解正确,目标是以正确的格式从文本框中获取值(例如,发送到服务器),而不是更改显示格式。我也认为手动更改日期格式是不好的做法。显示日期取决于用户的文化。【参考方案3】:这是一个老问题,但您可以使用小部件的toString
method。
var isoString = dijit.byId(widgetId).toString();
【讨论】:
以上是关于如何以给定格式从 dijit.form.DateTextBox 获取日期?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 DateTime 转换为/从特定的字符串格式(两种方式,例如给定格式为“yyyyMMdd”)?
如果给定的数据在使用 R 或 Python 的范围(-1 到 1)内,如何以 (-3 ,-2,-1,0,1,2,3) 格式规范化数据?