moment().valueOf returns a value even though it's invalid
tmkx opened this issue · comments
Tmk commented
Environment
moment.tz.setDefault();
t.ok(
Number.isNaN(moment("2023/10/06", ["H", "HH", "HH:mm"], true).valueOf()),
);
moment.tz.setDefault('America/New_York');
// not expected
t.ok(
Number.isNaN(moment("2023/10/06", ["H", "HH", "HH:mm"], true).valueOf()),
);
Issue description
when defaultZone is specified, valueOf
will return a value even though it's invalid.
it seems to be caused by:
moment-timezone/moment-timezone.js
Lines 643 to 646 in dffed7a
a fix that works:
- if (zone && needsOffset(mom) && !mom._isUTC) {
+ if (zone && needsOffset(mom) && !mom._isUTC && mom.isValid()) {
mom._d = moment.utc(mom._a)._d;
mom.utc().add(zone.parse(mom), 'minutes');
}
sslincoco commented
您的邮件已收到,我会尽快给您回复。
Gilmore Davidson commented