获取错误的时间格式

时间:2013-08-26 11:22:05

标签: node.js

我正在使用Node从MySQL获取数据。在数据库中,我得到了如下记录:2013-08-13 15:44:53。但是当Node从Database获取时,它会分配值,如2013-08-19T07:54:33.000Z。

我只需要在MySQL表格中获取时间格式。顺便说一句(我的列格式是MySQL中的DateTime)

在节点中:

connection.query(post, function(error, results, fields) {

    userSocket.emit('history :', {
        'dataMode': 'history',
        msg: results,
    });

});

1 个答案:

答案 0 :(得分:2)

从数据库中检索它时,您很可能会得到一个Date对象正是您应该使用的对象(字符串仅适用于显示日期,但处理字符串表示日期不是你想要做的事情。)

如果您需要某个字符串表示形式,请根据Date对象中存储的数据创建它 - 或者甚至更好,获取一些库,为其原型添加一个正确的strftime方法。

此类库的最佳选择是moment.js,它允许您执行此操作以获取所需的字符串格式:

moment('2013-08-19T07:54:33.000Z').format('YYYY-MM-DD hh:mm:ss')
// output (in my case on a system using UTC+2 as its local timezone):
// "2013-08-19 09:54:33"

但是,当通过套接字(需要字符串表示)发送它时,最好使用默认值,因为您可以将它传递给客户端的new Date(..)构造函数并获得正确的{{ 1}}再次反对。