javascript - Android SQLite 日期 ('now' )不准确

标签 javascript sqlite cordova

如果我在 Android 模拟器中运行此查询,它将输出 2014-05-11:

SELECT date('now');

如果我在同一个模拟器中运行此 javascript(使用 date.js),它会输出 2014-05-12:

new Date().toString("yyyy-MM-dd")

如果我进入模拟器的系统设置>日期和时间,它是5/12/2014,这意味着JavaScript结果是正确的。

那么我该如何解决这个问题呢?和GMT设置有关系吗?我当前的解决方案是避免 SQL 中的所有 date('now') 函数调用(我已将其替换为):

var sql = " SELECT '"+new Date().toString(yyyy-MM-dd)+"' ";

最佳答案

时区。 SELECT date('now') 返回 UTC 中的当前日期。 new Date().toString("yyyy-MM-dd") 使用本地时区。您本地的时区是 5 月 12 日,而 UTC 仍然是 5 月 11 日。

要在 SQL 中获取本地时间,请改用 SELECT date('now', 'localtime')

关于javascript - Android SQLite 日期 ('now' )不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23595706/

相关文章:

javascript - 在 jQuery mobile 中绑定(bind)动态添加的元素

java - 将数据数组保存到数据库

sqlite - 连接表时压缩具有相同 "key"的行

java - SQL 数据库 Columns 错误,或者不存在?

android - 发送和读取通过 Cordova 中的原生 SMS 应用程序发送的 SMS 内容

javascript:循环遍历元素并更改它们的值

javascript - Android 应用程序 - 运行 JavaScript 函数一次,然后在应用程序更新之前不再运行

javascript - useCallback Hooks 获取旧状态值而不更新

javascript - 如何在循环 2.js 中悬停图像时同时显示上一个/下一个按钮

javascript - 在我的 html 中包含 event.keycode == 13 后 <textarea> 换行不起作用