时间戳转换JavaScript

时间:2012-02-18 18:34:02

标签: javascript datetime date timestamp

我想知道转换此格式的时间戳的最佳方法是什么 -

2012-02-18 14:28:32

到这种格式的日期演示文稿 -

Saturday Feb 2012 14:28:32

非常感谢:)

6 个答案:

答案 0 :(得分:5)

Javascript日期函数非常糟糕...您可以选择转换为UTC http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_toutcstring

但如果是我,我会调查Datejs:http://www.datejs.com/最适合我的javascript日期api

请查看Datejs入门:http://www.datejs.com/2007/11/27/getting-started-with-datejs/

答案 1 :(得分:3)

您必须先定义一个英语单词数组(星期日,星期一,二月,三月等):

var daysOfWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
    monthsOfYear = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

为了能够在分钟和秒的开头插入额外的0,为String原型定义填充函数:

String.prototype.padLeft = function(padString,length){
    var toReturn = String(this);
    while(toReturn.length < length){
        toReturn = padString + toReturn;
    }
    return toReturn;
}

格式化日期和时间,如下所示:

var time = new Date(), formattedDate, formattedTime, wholeThing;
formattedDate = daysOfWeek[time.getDay()] + ", " + monthsOfYear[time.getMonth()] + " " + time.getDate() + ", " + time.getFullYear();
formattedTime = time.getHours() + ":" + time.getMinutes().padLeft("0",2) + time.getSeconds().padLeft("0",2);

您可以通过连接formattedDateformattedTime来完成整个事情,如:

wholeThing = formattedDate + " " + formattedTime;

答案 2 :(得分:3)

考虑使用摇滚的datejs

var mydate = Date.parse('2012-02-18 14:28:32');
var result = mydate.toString('dddd MMM yyyy h:mm:ss');
console.log(result);

答案 3 :(得分:1)

JavaScripts Date对象缺少格式化方法。我会考虑使用像this one这样的外部库。似乎它有你想要的东西。

答案 4 :(得分:1)

我建议使用外部js库来做到这一点。据我了解,Moment.js是最好的日期 - 时间转换库。

在这种情况下,它可以在一行中完成工作。只需在项目中添加moment.js,然后执行

var timestamp = '2012-02-18 14:28:32';
var formattedTime = moment(timestamp).format('dddd MMM YYYY HH:mm:ss'); // Saturday Feb 2012 14:28:32

答案 5 :(得分:0)

试试这个博客,它有足够的日期格式:

http://blog.stevenlevithan.com/archives/date-time-format