Даты Javascript - удаление информации о часовом поясе - PullRequest
0 голосов
/ 09 января 2019

У меня есть веб-приложение, где мои пользователи находятся в Нью-Йорке, но администраторы разбросаны по всему миру. Вариант использования прост. Администраторы нажимают на дату и добавляют некоторые заметки. Пользователи, когда они входят в приложение, нажимают на ту же дату и видят заметку

Проблема в часовом поясе. Когда администратор из Индии добавляет данные 1 января 2019 года, его данные добавляются к 31 декабря 2018 года, когда сервер преобразует входящий IST в EST. Это ломает приложение.

Я не могу справиться с отдельным часовым поясом. Поэтому я хочу убедиться, что веб-интерфейс всегда передает дату в EST, независимо от местного часового пояса

 private normalizeDate(d)
{
    let noTime = moment(d).format("L");
    let m = moment(noTime).tz("America/New_York");
    alert("no time :"+noTime);
    alert("normalized :"+m.format("L"));
}

Я попробовал эту функцию, где я получаю дату в местном часовом поясе (d) и удаляю всю информацию. Преобразовать в строку, а затем проанализировать его обратно в мой часовой пояс EST.

Очевидно, когда я звоню. момент (). tz () это преобразование часового пояса снова.

Есть идеи, какое решение лучше?

1 Ответ

0 голосов
/ 13 января 2019

В конце концов я использовал это, чтобы решить проблему

    public static NormalizeDate(d, timezone = "America/New_York")
    {
        var a = moment(d);
        var b = a.clone();
        return b.tz(timezone, true).startOf("day"); 
    }
...