2016-04-14 3 views
0

У меня есть вызов API, который получает строку даты, например 2016-2-12 // ('YYY-MM-DD').MomentJS Parse Midnight Local From Date String

Я использую момент-часовой пояс, но не имею никакой удачи.

Конечная целью является, чтобы получить метку времени Unix полуночи 2016-2-12 от часового пояса применимого сайта (не сервер)

Я пробовал много комбинаций что-то вроде:

moment.tz('2016-2-12', 'America/New York').utc();

Но, кажется, получить дату ввода как UTC (мой сервер по Гринвичу), а затем выполнить преобразование часового пояса после, давая мне дату на день раньше.

Для справки Я создаю отчет для диапазона дат. Так, если на входе:

&start=2016-4-12&stop=2016-4-15 //and the timezone is America/New York

Я ожидаю, что время начала 2016-4-12T00:00:00 -04:00, но я держать в конечном итоге с датами со дня раньше.

Я ожидаю, что функция будет что-то вроде:

moment.tz('2016-2-12', 'YYYY-MM-DD', 'America/New York').startOf('day').utc();

+0

Th ru Я думаю, ваш API должен принять часовой пояс. CMIIW –

+0

Я думаю, что «* часовой пояс применимого сайта» означает, что строка, обрабатываемая как локальная (которая, поскольку она не имеет часового пояса, соответствует ISO 8601, но не ECMAScript 2015), то это дубликат многих других такие как [* Как принять местный часовой пояс при разборе даты ISO 8601 *) (http://stackoverflow.com/questions/15517024/how-to-assume-local-time-zone-when-parsing-iso-8601 -date-string), без тега moment.js. – RobG

ответ

0

Как только я задал вопрос, после нескольких часов свинчивания вокруг, я получил его.

moment.tz('2016-4-14', 'YYYY-MM-DD', 'America/New York').format();

приносит 2016-04-14T00:00:00-04:00

Извините тратить время здесь ... Я надеюсь, что кто-то считает, что это полезно ...

moment.tz('2016-4-14', 'YYYY-MM-DD', 'America/New York').endOf('day').format();

приносит 2016-04-14T23:59:59-04:00, а также и я может легко получить временную метку unix с использованием utc()

+0

Это полезно, если вы знаете часовой пояс [* IANA *) (https://www.iana.org/time-zones) хоста. Намного проще просто проанализировать его как локальный (см. [* Как предполагать местный часовой пояс при разборе даты ISO 8601 *) (http://stackoverflow.com/questions/15517024/how-to-assume-local-time-zone -когда-синтаксический-изо-8601-дата-строка)). – RobG