更改节点js中的时间格式

时间:2013-08-20 07:08:34

标签: node.js datetime date-formatting

这里我以格式(2013-08-17 07:50:21)获取存储在数据库中的日期,我得到以下输出,但是我需要2013年8月17日格式的日期而不使用任何第三派对模块。可能吗?如果是,建议解决方案。

 var sql2 ="SELECT `user_id`, `vote_date` FROM `tb_post_votes` WHERE `post_id`=?";
  connection.query(sql2,[postId],function(err, result) {

  var post={"user_id":result[0].user_id,"date":result[0].vote_date}); 
    res.send(JSON.stringify(post));               
   }); 

Output: {"user_id":11,"date":"2013-08-17T07:50:21.000Z"}

1 个答案:

答案 0 :(得分:1)

Javascript / nodejs没有为Date对象提供格式化方法。但是,您可以轻松地从提供的本机方法中获取日期,月份和年份......

getYear()       - gives year count from 1990 113 for 2013
getFullYear()   - gives full year as 2013
getMonth()      - gives month number 0 based index
getDate()       - gives date of the month

同样new Date()以不同格式获取日期并将其转换为本地日期/时间,其中一个是UTC日期格式。因此,如果您的节点服务器处于UTC时间,那么您可以使用Date构造函数直接转换日期。

var date = new Date(UTC_Date);

根据您的规范,我们可以将getMonth()Array个月结合使用。

这对你有用......

var months = ["January", "February", "March", "April", "May", "June", 
    "July", "August","September", "October", "November", "December"];

var date = new Date(result[0].vote_date);

var dateStr = date.getDate() +' '
            + months[date.getMonth()] +' '
            + date.getFullYear();

console.log(dateStr); // gives 17 August 2013
var post={"user_id":result[0].user_id,"date":dateStr});

您可能还会发现Where can I find documentation on formatting a date in JavaScript?Working with Dates有用。