【问题标题】:Passing SQL time value to Javascript?将 SQL 时间值传递给 Javascript?
【发布时间】:2012-02-02 13:32:40
【问题描述】:

我正在使用融合图表。我正在尝试将 SQL 数组的元素附加到 Javascript strURL 上,以便可以将它们传递到另一个页面。 siteid 和名称等字段可以正常传递,但是每当我尝试传递时间戳时,它都无法加载图表。我无法完整地解释整个事情,因为要写的部分太多,但是如果有人对为什么时间戳不能附加到 strURL 有任何想法,那么我很想知道。

返回值如下:2011-12-19 12:00:00

【问题讨论】:

  • 我认为你最好做一些调试,看看你试图传递的字段的内容(时间戳)到底是什么。难道它是一个对象?您可能需要将其转换为字符串吗? console.log() 和你的浏览器调试器是你的朋友 :)
  • 如果您可以向我们展示时间戳以及您尝试将这些变量附加到它之后最终 strURL 的样子,我们可能会有所帮助。
  • 谢谢,我已经编辑了帖子以显示我从数据库返回的时间戳。我已将其缩小为时间戳,因为其他字段可以通过 javascript 传递,只有时间字段失败。

标签: php javascript sql timestamp fusioncharts


【解决方案1】:

这个问题可能是由时间戳的形式引起的。如果它包含未正确编码的特殊字符,那么您就有问题了。

从数据库中获取 Unix 纪元

您可以通过直接从数据库中获取 Unix 纪元时间戳来避免这种情况(例如 MySQL):

SELECT UNIX_TIMESTAMP(`my_timestamp`) FROM `my_table`;

并且由于此类时间戳只能由数字组成,因此对于不正确的字符应该没有任何问题。

在 JavaScript 中正确处理 Unix 纪元

在 JavaScript 中处理 Unix 纪元时间戳相当简单:

var db_timestamp = '1330655412';
var my_time = new Date();
my_time.setTime(db_timestamp * 1000);

请参阅this jsfiddle 以获得证明。

【讨论】:

    猜你喜欢
    • 2015-10-20
    • 2013-07-02
    • 2014-01-17
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-29
    • 2015-05-15
    相关资源
    最近更新 更多