我刚刚发现了一种意外的行为,其中我将一个timeStamp(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"
仅当日期格式设置为String时才会发生(例如,当我将其指定为输入字段的值时会发生这种情况)。
有人能解释为什么吗?
答案 0 :(得分:4)
发生问题是因为(Application.Current.MainWindow as MainWindow).mainFrame.Content = recoveryPage;
剥离了日期的毫秒部分。
当您尝试再次从字符串中重建日期时,毫秒部分将默认为零,因为未再次提供/提供。
答案 1 :(得分:2)
因为toString()
将日期精确地转换为ISO 8601的秒数。
您要比较的日期相差毫秒。