【发布时间】:2016-03-24 14:26:01
【问题描述】:
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' (来自加载时的数据库)或来自日历 (this.value = $('.input-group.date', this.element).datepicker('getUTCDate');) 日期选择器的日期对象在自定义元素中使用。
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.(date) - 无效日期失败 moment.utc(date) - 无效日期失败
不知道是否需要添加try catch in?即尝试从日期对象转换,如果它在捕获范围内,那么它必须是来自数据库等的字符串?
使用来自@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');
第一个警报 -
第二次警报 -
【问题讨论】:
标签: datetime datepicker momentjs