JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.3.0/moment-timezone-with-data.js"></script>
<!-- vrluckyin -->
<!-- moment js DST verify -->
<div id="output"></div>
JavaScript
var
tzIndia = "Asia/Calcutta",
tzUSA = "America/New_York",
TZ = tzUSA,
FORMAT = 'YYYY-MM-DD hh:mm:ss',
time = '10:30:15',
beforeDSTDate = moment.tz('2016-11-12 '+time, FORMAT, TZ),
dstStartDate = moment.tz('2016-03-13 '+time, FORMAT, TZ),
dstMiddleDate = moment.tz('2016-07-05 '+time, FORMAT, TZ),
dstEndDate = moment.tz('2016-11-05 '+time, FORMAT, TZ),
afterDSTDate = moment.tz('2016-11-06 '+time, FORMAT, TZ),
$output = $('#output'),
buffer = [];
//buffer.push('beforeDSTDate: ' + beforeDSTDate.format());
//buffer.push('dstStartDate: ' + dstStartDate.format());
//buffer.push('dstMiddleDate: ' + dstMiddleDate.format());
//buffer.push('<br/>dstEndDate: ' + dstEndDate.format());
//buffer.push('<br/>afterDSTDate: ' + afterDSTDate.format());
buffer.push('<br/>beforeDSTDate: ' + beforeDSTDate.format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>dstStartDate: ' + dstStartDate.format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>dstMiddleDate: ' + dstMiddleDate.format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>dstEndDate: ' + dstEndDate.format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>afterDSTDate: ' + afterDSTDate.format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>------------------');
buffer.push('<br/>beforeDSTDate: ' + beforeDSTDate.clone().tz(tzIndia).format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>dstStartDate: ' + dstStartDate.clone().tz(tzIndia).format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>dstMiddleDate: ' + dstMiddleDate.clone().tz(tzIndia).format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>dstEndDate: ' + dstEndDate.clone().tz(tzIndia).format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>afterDSTDate: ' + afterDSTDate.clone().tz(tzIndia).format('YYYY-MM-DD hh:mm:ss'));
buffer.push('<br/>------------------');
// this evaluates to 'true', but shouldn't according to
// https://github.com/moment/moment-timezone/blob/44ce91b03aa528ceb3832d13dbcee041f09c577a/tests/zones/pacific/fiji.js#L78-L79
buffer.push('<br/>beforeDSTDate.isDST: ' +...