【问题标题】:Formatting a (JSON) UNIX timestamp in Jade & node.js在 Jade 和 node.js 中格式化 (JSON) UNIX 时间戳
【发布时间】:2016-10-11 13:03:55
【问题描述】:

我从 JSON 文件中获取数据,其中一个元素是时间戳 (last_seen),它返回如下整数:

"id": 4294901761,
"distance": 45,
"last_seen": 1465397445

现在我正在使用 Jade 和 node.js 创建一个表(使用 jQuery 插件 DataTables),其中包含该元素的列。我希望每一行显示从 JSON 中获取的整数的相应日期和时间。我的表通过以下方式生成:

table.datatable
            thead
                tr
                    th ID
                    th Distance
                    th Last Seen
            tbody
                each item, i in uplinkjson.hubs[t].nodes
                    tr 
                        td= item.id
                        td= item.distancejson 
                        td= item.last_seen

我是 JavaScript 和 Jade 的新手。我的 JS 文件如下所示:

var express = require('express');
var router = express.Router();
//ok
/* GET home page. */
router.get('/', function(req, res, next) {
    var json = req.uplinkjson;
  res.render('uplink', { 'uplinkjson': json});
});


module.exports = router;

任何指导将不胜感激,谢谢!

【问题讨论】:

    标签: javascript jquery json node.js unix-timestamp


    【解决方案1】:

    你可以这样使用:

    td #{ new Date(1000 * item.last_seen) }
    

    这会呈现这个(对于我的时区):

    <td>Wed Jun 08 2016 16:50:45 GMT+0200 (CEST)</td>
    

    如果您想更好地控制它的外观,可以使用moment 之类的库。如果您将该模块的实例传递给res.render(),您可以直接在 Jade 中进行格式化:

    var json = req.uplinkjson;
    res.render('uplink', {
      moment     : require('moment'),
      uplinkjson : json
    });
    

    在你的模板中:

    td #{ moment(1000 * item.last_seen).format('YYYY/MM/DD, HH:MM') }
    

    输出:

    <td>2016/06/08, 16:06</td>
    

    【讨论】:

      猜你喜欢
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多