我一直在努力寻找一些DateTime值。
我有一个API后端,该后端使用带有.netcore的实体框架和sql服务器。
我想将日期时间从angular发送到c#时遇到的大问题 后端。我注意到默认情况下Typescript / javascript中的Date() 使用我的时区,我不知道如何排除它。
例如,我的约会如下: 2019年7月11日星期三21:00:00 GMT + 0300 而到达c#时变为2010年10月10日(mm-dd-yyyyy),则由于时区而减去1天。
是否有一种方法可以标准化Date变量以忽略时区并始终保持相同的DD-MM-YYYY格式?
我也尝试过使用MomentJS,但仍然无法弄清楚,即使是我的MomentJS比较也由于他的问题而表现不佳。
例如:
const VacationStart = moment(calendarEntity.Vacation.StartTime).utc(false);
const VacationEnd = moment(calendarEntity.Vacation.EndTime).utc(false);
if (VacationStart.isSameOrBefore(ColumnDate,'day') && VacationEnd.isSameOrAfter(ColumnDate,'day')) {
return '#FF0000';
}
在上面的示例中:
VacationStart于2019年7月10日星期三21:00:00 GMT + 0300
假期结束于2019年7月17日星期三00:00:00 GMT + 0300
ColumnDate是2019年8月15日星期四03:00 GMT + 0300(增量值)
尽管出于某种原因,即使我使用isSameOrBefore(ColumnDate,'day')来指定最多只能比较几天,它仍然无法正常工作。如果VacationEnd应该等于ColumnDate,则返回false。
注意:一切都在foreach循环中,其中ColumnDate增加+1天。
答案 0 :(得分:1)
您只需要使用UTC时间(格林威治标准时间)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC https://docs.microsoft.com/en-us/dotnet/api/system.datetime.utcnow?view=netcore-2.2
是这样的: