Seb*_*ham 12 javascript date toisostring
我正在以两种不同的格式在数据库中插入日期.
这是作为Datetime插入
var mydate;
mydate = new Date();
document.getElementById('clockinhour').value = mydate.toISOString().slice(0, 19).replace('T', ' ');
Run Code Online (Sandbox Code Playgroud)
输出A.
2017-06-21 20:14:31
Run Code Online (Sandbox Code Playgroud)
这是作为varchar插入:
document.getElementById('clocked_in_time').value = Date();
Run Code Online (Sandbox Code Playgroud)
输出B.
Wed Jun 21 2017 16:14:31 GMT-0400 (Eastern Standard Time)
Run Code Online (Sandbox Code Playgroud)
输出B是正确的时间但我需要显示输出A.什么原因导致转换为ISOString时的时间变化?我怎样才能解决这个问题?
在你的这个插入日期时间块你slice正在剥离时区部分(Z在toISOString输出的末尾):
document.getElementById('clockinhour').value = mydate.toISOString().slice(0, 19).replace('T', ' ');
Run Code Online (Sandbox Code Playgroud)
正如@RobG在评论部分所指出的那样,toISOString应始终以UTC(Z或+00:00)的形式返回日期.
RTFM:" 时区[offset]始终为UTC,由后缀Z "表示,
时间"更改",因为它在您调用时会转换为UTC toISOString.
如果您想在您的时区获得ISO日期,您应该看看这两个问题:如何在JavaScript中使用ISO 8601格式化带有时区偏移的日期?以及如何格式化JavaScript日期
| 归档时间: |
|
| 查看次数: |
16084 次 |
| 最近记录: |