Używam frameworków Moment.js i Moment-Timezone oraz mam obiekt daty Moment.js, który jest jawnie w strefie czasowej UTC. Jak mogę przekonwertować to na aktualną strefę czasową przeglądarki?
var testDateUtc = moment.tz("2015-01-30 10:00:00", "UTC");
var localDate = ???
Byłoby więc dobrze, gdybym mógł znaleźć lokalną strefę czasową użytkowników; lub alternatywnie chciałbym przekonwertować obiekt daty na inny obiekt danych, który po prostu używa „lokalnej strefy czasowej”, bez względu na to, co to właściwie jest.
źródło
moment-timezone
bibliotekilocal
rzeczywiście uwzględnia czas letni.EST
naCET
, jutro podam przykład jak chceszNY
->Madrid
. Przyjmuję kontrprzykład :)var dateFormat = 'YYYY-DD-MM HH:mm:ss'; var testDateUtc = moment.utc('2015-01-30 10:00:00'); var localDate = testDateUtc.local(); console.log(localDate.format(dateFormat)); // 2015-30-01 02:00:00
Zobacz: http://momentjs.com/docs/#/manipulating/local/
źródło
Oto co zrobiłem:
var timestamp = moment.unix({{ time }}); var utcOffset = moment().utcOffset(); var local_time = timestamp.add(utcOffset, "minutes"); var dateString = local_time.fromNow();
Gdzie
{{ time }}
jest sygnatura czasowa utc.źródło
Użyj funkcji utcOffset.
var testDateUtc = moment.utc("2015-01-30 10:00:00"); var localDate = moment(testDateUtc).utcOffset(10 * 60); //set timezone offset in minutes console.log(localDate.format()); //2015-01-30T20:00:00+10:00
źródło