javascript - 从后端到前端的日期时间值

标签 javascript c# angular typescript momentjs

我已经为一些 DateTime 值苦苦挣扎了好几天。

我有一个 API 后端,它使用 Entity Framework 和带有 .netcore 的 sql server。

The big issue when i want to send a datetime from angular to c# backend. I noticed that Date() in typescript/javascript by default uses my timezone and i don't know how to exclude it.

例如,我的日期如下所示: 2019 年 7 月 11 日星期三 21:00:00 GMT+0300 当它到达 c# 时,它变成 07/10/2010(mm-dd-yyyy),由于时区,它减去 1 天。

有没有办法标准化日期变量以忽略时区并始终保持相同的格式 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 is Wed Jul 10 2019 21:00:00 GMT+0300

VacationEnd is Wed Jul 17 2019 00:00:00 GMT+0300

ColumnDate is Thu Aug 15 2019 03:00:00 GMT+0300 (incremental value)

但由于某种原因,即使我使用 isSameOrBefore(ColumnDate,'day') 指定仅比较最多天,它仍然不起作用。当 VacationEnd 应等于 ColumnDate 时,返回 false。

注意:一切都在 foreach 循环中,其中 ColumnDate 增加 +1 天。

最佳答案

您只需使用 UTC 时间(格林威治标准时间)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/UTC https://learn.microsoft.com/en-us/dotnet/api/system.datetime.utcnow?view=netcore-2.2

所以像这样:

  • new Date(new Date().toUTCString()); --“2019 年 7 月 1 日星期一 17:55:41 GMT-0700(太平洋夏令时间)”
  • new Date().toUTCString(); --“2019 年 7 月 2 日星期二 00:56:38 GMT”
  • new Date().toString(); --“2019 年 7 月 1 日星期一 17:57:03 GMT-0700(太平洋夏令时间)”

关于javascript - 从后端到前端的日期时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56838557/

相关文章:

javascript - 像文本而不是数字一样读取值

javascript - 如何简化这个 Javascript 文件

javascript - 为什么我收到错误 : Uncaught TypeError: Cannot read property 'left' of undefined

javascript - 如何转换基于 Msxml2.XMLHTTP 的仅 IE 网站,使其也适用于 Firefox?

c# - 传递凭据适用于 WebRequest,但不适用于 HttpClient

html - 复制粘贴下拉数据从excel到 Angular Material 表(或导入excel)并将其转换为下拉

c# - 在配置部分中创建动态键值对

c# - 组合框显示成员问题,快把我逼疯了

typescript - 从 Angular 2 升级到 Angular 4 后出现错误

ruby-on-rails - 如何在 rails 6 应用程序中使用带有 webpack 的 angular 8?