我无法正确地将日期与angular5一起使用
我从模拟的api中获取数据,其中生成的日期是这样的: 24/07/2018 00:00:00 因此,搜索或操作这些日期都没有问题。
api模拟中的世代示例:
for (int i = 1; i <= NUMBER_OF_POLICIES; i++)
{
Policy lPolicy = new Policy { Id = i, Name = string.Concat("Policy number ", i), Date = DateTime.Now.AddDays(i) };
p.Add(lPolicy);
}
当我使用角度材质的DatePicker组件更新日期时出现问题。
使用选择器,日期像tis一样显示:
Mon Jul 30 2018 00:00:00 GMT+0200
所以当我更新商品时,日期是这样传递的:
updated item: {"id":1,"name":"Policy number 1","date":"2018-07-29T22:00:00.000Z"}
知道如何处理语言环境吗?
编辑:
这是我进行一些研究时遇到的问题:
答案 0 :(得分:2)
使用时刻作为日期和时间,这将提供必要的格式。
momentjs具有不同的属性,可以以必需的格式获取时间和日期。
newDate =今天。今天
date = moment(this.newDate)
您还可以传递必要的格式,例如
date = moment(this.newDate).format('DD / MM / YYYY')
答案 1 :(得分:1)
您可以在组件本身中使用DatePipe,并使用pre-defined-format-options
格式化日期。尝试一下
import { DatePipe } from '@angular/common';
class Service {
constructor(private datePipe: DatePipe) {}
changeDate(date) {
return this.datePipe.transform(date, 'yyyy-MM-dd');
}
}
或者您也可以像这样格式化日期
var formatted = new DatePipe().transform(raw, 'yyyy-MM-dd');
答案 2 :(得分:0)
const offset = p.date.getTimezoneOffset();
const test = p.date.setMinutes(p.date.getMinutes() - offset);
console.log(test)返回:
updated item: {"id":1,"name":"Policy number 1","date":"2018-07-31T00:00:00.000Z"}
它也可以工作,但是“干净”吗?