节点js中的时间戳与数据库

时间:2015-12-16 06:48:20

标签: javascript mysql node.js

在数据库中,时间戳保存为 2015-12-05 10:53:12 但是当我使用mysql查询获取记录时,它会返回此时间戳,如 2015-12- 05T10:53:12.000Z 即可。 为什么?任何问题?请帮忙。

3 个答案:

答案 0 :(得分:2)

在您的数据库中,时间戳以二进制数字格式保存。 " 2015-12-05 10:53:12" &安培; " 2015-12-05T10:53:12.000Z"是您在某些应用程序中看到的该值的字符串表示形式。

它具有相同的价值,这里没有问题可以解决。

答案 1 :(得分:0)

您可以使用MySQL的DATE_FORMAT,例如

SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y'); -> 'Sunday October 2009'

http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format

答案 2 :(得分:0)

要转换你的Date-Object(用“yyyy-MM-dd'T'HH:mm:ss.SSS'Z'”表示为ISOString),你必须在从db读取后解析它。

在JavaScript中,您可以通过简单地在构造函数中传递字符串来实现这一点,例如: var myDate =新日期(“2015-12-05T10:53:12.000Z”)

使用自定义格式,您可以这样做,例如:

var dateString =“2015-12-05 10:53:12”; var date = Date.parse(dateString,“yyyy-MM-dd HH:mm:ss”);

为了将其表示为“2015年12月16日”,您必须在之后解析它:

有一些很好的资源库(例如momentjsangularjs - date filters

如果不这样做,你可以手动执行这样的操作(你传递之前创建的日期对象):

  function parseDate(date) {
    var months = ['JAN','FEB','MAR','APR','MAY','JUN',
      'JUL','AUG','SEP','OCT','NOV','DEC'];
    return months[date.getMonth()]+" "+("0" + date.getDate()).slice(-2)+", "+date.getUTCFullYear();
  }