想知道我是否应该删除通常存储的时间数据。我们正在使用postgres
以及node.js
从我们的 API 返回 DateTime 的位置:
2013-07-01T00:00:00.000Z
然而,由于这个字段应该只代表一个日期,我觉得像这样在返回之前重新格式化会更清楚地表明时间是不相关的:
2013-07-01
想法?
想知道我是否应该删除通常存储的时间数据。我们正在使用postgres
以及node.js
从我们的 API 返回 DateTime 的位置:
2013-07-01T00:00:00.000Z
然而,由于这个字段应该只代表一个日期,我觉得像这样在返回之前重新格式化会更清楚地表明时间是不相关的:
2013-07-01
想法?
如果您代表日历日期,则没有时间或时区。简短的表示更有意义。
不幸的是,许多 javascript 实现中的 new Date(string) 会对你做坏事。
new Date('2015-09-23')
Tue Sep 22 2015 20:00:00 GMT-0400 (Eastern Daylight Time)
解决问题的最简单方法是不使用 javascript 的 Date - 这种类型与其他语言中的 DateTimeOffset 匹配。这是表示日历日期值的不好方法。
但是,无论如何,您可能会使用 javascript 的 Date 。下一个最简单的“修复”是避免标准表示(因为标准表示被解释为带有 UTC 的 DateTimeOffset)。这里有两种可能性:
使用“/”代替“-”。
new Date('2015/09/23')
Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
使用 3 位数的月份 - 前导零将被丢弃。
new Date('2015-009-23')
Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
如果您在客户端和服务器端都有 javascript,那么您就完成了。如果您在服务器端有其他东西,您应该考虑服务器语言在看到非标准日期格式进入时会做什么。
作为 API 用户,我更愿意接收长格式的日期。
有几个原因: