Date 矩分析区域给出了意外的结果

Date 矩分析区域给出了意外的结果,date,timezone,momentjs,Date,Timezone,Momentjs,const输入='02/02/1700 12:30' 常量输入格式=['DD/MM/YYYY HH:MM'] const displayFormat='YYYY-MM-DDTHH:MM:ss' 日志(瞬间(输入,输入格式,真)) console.log(矩(input,inputFormat,true).format()) console.log(矩.utc(输入,输入格式,真)) console.log(矩.utc(input,inputFormat,true).format()) conso

const输入='02/02/1700 12:30'
常量输入格式=['DD/MM/YYYY HH:MM']
const displayFormat='YYYY-MM-DDTHH:MM:ss'
日志(瞬间(输入,输入格式,真))
console.log(矩(input,inputFormat,true).format())
console.log(矩.utc(输入,输入格式,真))
console.log(矩.utc(input,inputFormat,true).format())
console.log(矩.parseZone(输入,输入格式,true))
console.log(矩.parseZone(input,inputFormat,true).format())
log(矩.tz(输入,输入格式,true,'Asia/hongkong'))
console.log(矩.tz(输入,输入格式,true,'Asia/hongkong').format())

有几件事:

  • 不要直接记录
    时刻。始终使用输出函数,如
    format
  • 当您解析in-Moment时,内部Moment正在调用
    Date
    对象上的setter。由于没有经过秒或毫秒,因此永远不会调用该设置程序。如果你有秒数,你会看到它们像预期的那样被设置为零
  • 在这种情况下,它们不存在的原因是存在一个长期存在的浏览器错误,即在
    1883-11-18T12:03:57.999Z
    上或之前构建的
    Date
    对象。请参阅,以及相关问题。这不是一时的错误,而是JavaScript浏览器的怪癖。这只对很早的日期很重要
  • parseZone
    专门用于输入中包含时区偏移量的情况下-数字如
    -07:00
    Z
    (表示UTC)。您的示例输入字符串中既没有也没有

你好。请不要只是链接到外部代码。您可以使用外部站点来补充您的问题,但您需要在问题本身中包含您正在询问的特定代码。请阅读并从堆栈溢出帮助中心获取。谢谢(还有,你的小提琴里有太多的东西——把你的代码限制在特定的问题上——去掉那些不相关的部分。)只想展示不同的情况。无论如何,我怀疑这是一个瞬间的错误。无论如何,用代码更新。