【发布时间】:2018-12-10 09:01:16
【问题描述】:
我刚刚发现了一个意外行为,我在隐藏的表单字段中放置了一个时间戳 (Date)。在提交(更新)表单时,我对文档增量进行了一些检查(因为我只想更新编辑的差异)。
那时我遇到了,未编辑的隐藏 Date 字段已被检测为不同。
我将其分解为以下重现代码:
const date = new Date() // Mon Dec 10 2018 09:42:34 GMT+0100 (Timezone goes here)
const dateStr = date.toString()
console.log(date) // "2018-12-10T08:42:34.388Z"
console.log(new Date(dateStr)); // "2018-12-10T08:42:34.000Z"
只有在日期被格式化为字符串时才会发生(例如,当我将其分配为输入字段的值时会发生这种情况)。
谁能解释为什么会这样?
【问题讨论】:
-
您忘记查看
console.log(dateStr)。那里没有毫秒信息。 -
确实,我完全处于将状态视为将通过表单发送的心态。考虑到这一点,我的整个编辑历史都受到了损害:-/
标签: javascript string date