【问题标题】:How to get date from dijit.form.DateTextBox in given format?如何以给定格式从 dijit.form.DateTextBox 获取日期?
【发布时间】:2011-04-12 12:28:27
【问题描述】:

我在 html 文件中有一个 dojo 文本框。现在我想以字符串格式“yyyy-mm-dd”从文本框中检索日期。我该怎么做?

  dojoType="dijit.form.DateTextBox"

我该怎么做?

【问题讨论】:

    标签: date dojo


    【解决方案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();
      

      【讨论】:

        猜你喜欢
        • 2021-09-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多