日期字段将字符串存储为 its value
,将字符串存储为 its text
。它value
和text
两者都具有格式YYYY-MM-DD
。
:::warning 警告:日期字段不再是核心 Blockly 库的一部分。我们现在将其发布为名为@blockly/field-date 的 npm 包 :::
::::tabs ::: tab JSON
{
"type": "example_date",
"message0": "date: %1",
"args0": [
{
"type": "field_date",
"name": "FIELDNAME",
"date": "2020-02-20"
}
]
}
::: ::: tab JavaScript
Blockly.Blocks['example_date'] = {
init: function() {
this.appendDummyInput()
.appendField('date:')
.appendField(new Blockly.FieldDate('2020-02-20'), 'FIELDNAME');
}
};
::: ::::
日期字段构造函数接受一个可选的value
和一个可选的 校验器。value
应该是格式中的字符串YYYY-MM-DD
。否则将使用当前(今天)日期。
日期字段的 XML 如下所示:
<field name="FIELDNAME">2020-02-20</field>
field
节点的属性name
包含引用日期字段的字符串,节点的内部文本是应用于该字段的值。内部文本值遵循与构造函数值相同的规则。
::: tip 注意: 有关验证器的一般信息,请参阅验证器。 :::
日期字段的值是YYYY-MM-DD
格式字符串,因此任何验证器都必须接受YYYY-MM-DD
格式字符串,并返回YYYY-MM-DD
格式字符串null
、 或undefined
。
请注意,在验证日期时,使用 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);
}