Javascript 时刻js:奇怪的utc时区转换:基里蒂马蒂岛,utc+;14

Javascript 时刻js:奇怪的utc时区转换:基里蒂马蒂岛,utc+;14,javascript,momentjs,Javascript,Momentjs,请帮助整理momentjs如何处理一个独特的时区:基里蒂马蒂岛,UTC+14 我想得到明确的日期,没有小时和分钟,只有utc的年、月和日 我有: 在任何时区,从UTC-12到UTC+13,我都会得到: 1950-04-15T00:00:00Z // I'd like to get this for all the timezones 在时区Kiritimati岛,UTC+14,我得到: 1950-04-14T23:55:00Z // unwanted result 所有时区(包括Kiriti

请帮助整理
momentjs
如何处理一个独特的时区:
基里蒂马蒂岛,UTC+14

我想得到明确的日期,没有小时和分钟,只有utc的年、月和日

我有:

在任何时区,从UTC-12到UTC+13,我都会得到:

1950-04-15T00:00:00Z // I'd like to get this for all the timezones
在时区Kiritimati岛,UTC+14,我得到:

1950-04-14T23:55:00Z // unwanted result
所有时区(包括Kiritimati)的日期都一样吗

备注:我在Windows10的数据和时间设置中更改时区


这是一个非常奇怪的问题,似乎在这个时区的矩.js中有5分钟的错误。与UTC的偏移量应为10h40m,但为10h45m

而且这种情况似乎只发生在1979年10月之前的较老日期

它也出现在Ubuntu18上,我原以为它可能是Windows的东西,但看起来不像

我认为这是一个值得报告的bug,哦,等等,它看起来已经存在了:

在任何情况下,都有一个使用库的变通方法

const date=新日期(1950年3月15日);
const dateMoment=时刻(日期).utc(真).format();
const tz=矩.tz.猜测(真);//获取时刻时区以猜测用户时区。
const dateMomentTZ=moment.tz(date,tz).utc(true).format();
document.getElementById(“mom”).innerText=dateMoment;
document.getElementById(“momtz”).innerText=dateMomentTZ;
document.getElementById(“tz”).innerText=tz

原件-有问题:
Moment.tz-解决方法:

时区:
是的,我已经报告过了。谢谢你的解决办法,太酷了!太好了,很乐意帮忙。我必须深入研究代码,看看我是否能理解为什么会发生这种情况。也可以查看Luxon-它是Moment.js的继承者
1950-04-14T23:55:00Z // unwanted result