我在当前项目中使用TempHire Angular 2作为参考架构。我遇到了与下面的Stackoverflow线程完全相同的问题,即由于UTC问题,无法将SQL Server中的日期值保存为用户输入。
breezejs: date is not set to the right time
在我的Angular2 / Typescript项目中,我可以按照上面的URL所述进行更改。我们赞赏Typescript语法。
注意:我已经在项目中包含了momentJs。
答案 0 :(得分:0)
请参考。 https://github.com/Breeze/temphire.angular/issues/12
如果有人有类似的要求,我已经完成了以下工作。
内部准备() { ......... ......... DataType.parseDateFromServer = this.parseDateAsMoment; ......... ......... }
parseDateAsMoment(来源:任意):日期{
var date = moment.utc(source, 'YYYY-MM-DD HH-mm-ss');
return date.toDate();
}
在Angular组件中,MyDatePicker的ondatechanged事件。
onDateFromChanged(event:IMyDateModel){
if (event.formatted !== '') {
var newDate = moment.utc(new Date(event.jsdate).toLocaleDateString()).format('YYYY-MM-DD HH-mm-ss')
var newDate2 = moment.utc(newDate, 'YYYY-MM-DD HH-mm-ss');
this.model.dateFrom = newDate2.toDate();
}
}
只有这样日期输入才能在SQL Server datetime列中正确存储。