import moment from 'moment';
export class DateTimeFormat {
format(date, time) {
alert(date);
return moment(date + 'T' + time, 'DD/MM/YYYY HH:mm:ss');
}
}
'Date'可以作为字符串'DD / MM / YYYY'(来自加载时的DB),或来自calander(this.value = $('.input-group.date', this.element).datepicker('getUTCDate');
)datepicker的日期对象在自定义元素中使用。< / p>
DateTimeFormat的使用方式如下:
.ensure('baseContent.ValidFromDate', (config) => { config.computedFrom(['baseContent.ValidFromDate', 'baseContent.ValidFromTime', 'baseContent.ValidToDate', 'baseContent.ValidToTime']) })
.if(() => {
return this.baseContent.ValidFromDate !== null && this.baseContent.ValidFromTime !== null && this.baseContent.ValidToDate !== null && this.baseContent.ValidToTime !== null })
.passes( () => { return this.datetimeformat.format(this.baseContent.ValidFromDate, this.baseContent.ValidFromTime) < this.datetimeformat.format(this.baseContent.ValidToDate, this.baseContent.ValidToTime) })
.withMessage('< Valid To')
.endIf()
我试过了: 时刻。(日期) - 无效日期失败 moment.utc(date) - 无效日期失败
我不知道是否需要添加try catch?即尝试从日期对象转换,如果它在catch中,那么它必须是来自db等的字符串?
使用@VicenzoC中的以下信息,我添加了一个if语句
var dateFormatted;
if (typeof(date) === 'string')
{
dateFormatted = date;
}
else
{
// Must be an object from a calendar etc
alert(date);
dateFormatted = moment(date, 'DD/MM/YYYY');
alert(dateFormatted);
}
return moment(date + 'T' + time, 'DD/MM/YYYY HH:mm:ss');
第一次提醒 -
第二次提醒 -
答案 0 :(得分:1)
在我看来,您的.datepicker('getUTCDate')
会返回Date
个对象,在这种情况下,您可以使用moment(Date);
moment
个对象
this.value = $('.input-group.date', this.element).datepicker('getUTCDate');
var momentObj = moment(this.value);
如果你有一个字符串,你可以使用:
解析它moment(String);
如果是ISO 8601支持的格式之一(例如20130208T080910
)moment(String, String);
将您的自定义格式作为第二个参数传递。moment(String, String[]);
如果您必须处理多种格式。如果您有moment
对象,则可以使用format
方法,如果您需要以自定义格式显示日期。
答案 1 :(得分:0)
import moment from 'moment';
export class DateTimeFormat {
format(date, time) {
var dateFormatted;
if (typeof(date) === 'string')
{
dateFormatted = date;
}
else
{
// Must be an object from a calendar etc
dateFormatted = moment(date).format('DD/MM/YYYY');
}
return moment(dateFormatted + 'T' + time, 'DD/MM/YYYY HH:mm:ss');
}
}
这是最终的代码,我首先确定typeof(再次感谢@VenenzoC指向我那个方向)然后我在if语句中处理日期部分。