4.14.4.12 日期

优质
小牛编辑
135浏览
2023-12-01

日期字段存储一个字符串作为其值,并存储一个字符串作为其文本。 其值和文本均具有YYYY-MM-DD格式。

警告:由于使用受限且占用空间大,因此默认情况下,FieldDate不会编译为Blockly。 要使用它,您将需要它并进行重建。 将goog.require('Blockly.FieldDate')添加到您的项目中,或在blockly.js中取消注释以启用它。

创建

{
  "type": "example_date",
  "message0": "date: %1",
  "args0": [
    {
      "type": "field_date",
      "name": "FIELDNAME",
      "date": "2020-02-20"
    }
  ]
}

日期字段构造函数采用一个可选值和一个可选验证器。 该值应该是格式为YYYY-MM-DD的字符串。 否则,将使用当前(今天)的日期。

可序列化和XML

日期字段的XML如下所示:

<field name="FIELDNAME">2020-02-20</field>

创建日期验证器

日期字段的值是YYYY-MM-DD格式的字符串,因此任何验证器都必须接受YYYY-MM-DD格式的字符串,并返回YYYY-MM-DD格式的字符串,空值或未定义。

请注意,在验证日期时,使用Closure的日期类可能很有用。

这是仅接受工作日的验证程序的示例:

function(newValue) {
  var date = goog.date.Date.fromIsoString(newValue);
  var weekday = date.getWeekday();
  if (weekday == 0 || weekday == 6) {
    return null;
  }
  return date.toIsoString(true);
}