Значение DateTime от внутреннего интерфейса до внешнего - PullRequest
0 голосов
/ 01 июля 2019

В течение нескольких дней я боролся с некоторыми значениями DateTime.

У меня есть бэкэнд API, который использует инфраструктуру сущностей и сервер sql с .netcore.

Большая проблема, когдаЯ хочу отправить datetime из угловых в C # Backend.Я заметил, что Date () в машинописном тексте / javascript по умолчанию использует мой часовой пояс, и я не знаю, как его исключить.

Например, моя дата выглядит так: ср 11 июля 2019 21:00: 00 GMT + 0300 И когда он прибыл в c #, он становится 07/10/2010 (мм-дд-гггг), он вычитает 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 - среда, 10 июля 2019 21:00:00 GMT + 0300

VacationEnd - среда 17 июля 2019 00:00:00 GMT + 0300

ColumnDate - четверг 15 августа 2019 03:00:00 GMT + 0300 (в инкрементном значении)

Еще дляпо какой-то причине, даже если я использую isSameOrBefore (ColumnDate, 'day'), чтобы указать, что сравнивать только до дней, он все еще не работает.Когда VacationEnd должен быть равен ColumnDate, возвращается false.

Примечание: все находится в цикле foreach, где ColumnDate увеличивается на +1 день.

1 Ответ

1 голос
/ 02 июля 2019

Вам просто нужно использовать время 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

Примерно так:

  • новая дата (new Date (). toUTCString ());- «Пн. Июл 01 2019 17:55:41 GMT-0700 (тихоокеанское летнее время)»
  • new Date (). ToUTCString ();- «Вт, 02 июля 2019 г. 00:56:38 GMT»
  • new Date (). ToString ();- «Пн Июл 01 2019 17:57:03 GMT-0700 (Тихоокеанское летнее время)»
...