2012-09-20 85 views
2

我使用JavaScript。我有如下格式:日日获取时间在h:格式javascript javascript日期格式

Tue Sep 18 2012 01:30:00 GMT+0530 (India Standard Time) 

我想在显示它下面的格式

'Y-m-d h:i:s' 

OR

如何只能从(Tue Sep 18 2012 00:00:00 GMT+0530 (India Standard Time))这种格式在JavaScript中得到的时间?

回答

3

如果你有Date对象,你可以这样做:

var timeString = myDate.getFullYear() + '-' + (myDate.getMonth()+1) + '-' 
+ myDate.getDate() + ' ' + myDate.getHours() + ':' + myDate.getMinutes() + ':' 
+ myDate.getSeconds(); 

如果你有一个String只是做在此之前:

var myDate = new Date('Tue Sep 18 2012 01:30:00 GMT+0530 (India Standard Time) '); 
+0

它像黄油一样工作:-) –

0

Moment.js是一个不错的JS库,可以帮助解析和格式化日期。

http://momentjs.com/

+0

因为这必须在我的代码中包含时刻库。不能包含文件。我必须做到这一点,而不包括任何文件。 – nav

+0

出于兴趣,你为什么不包括图书馆? – Magrangs

+0

你正在使用js日期对象还是只是一个字符串? (因为你可以从日期对象中取出你想要的值)。如果你有一个字符串,你可以使用新的Date((Date.parse(*你的字符串*)))将它解析成一个日期对象,然后将你想要的任何值输出到一个字符串中。 – Magrangs

1

有出几个很好的图书馆帮助你处理日期(例如date.js,moment.js)。

由于您在其中一条评论中提到您不想包含额外的js文件,因此也有较小的版本(例如dateFormat),您可以轻松地将其复制或粘贴到当前代码中。

如果你真的想推出你自己的日期格式化程序而不是使用现有格式化程序,你可以使用Date对象提供的方法来构建自己的字符串。

这里有一个简单的例子:

function getMyDateFormat(date) { 
    var d = date ? new Date(date) : new Date; 
    var dt = [d.getFullYear(), d.getMonth(), d.getDay()].join("-"), 
     tm = [d.getHours(), d.getMinutes(), d.getSeconds()].join(":"); 
    return dt + " " + tm; 
} 

用法示例:

str = getMyDateFormat(); // default (current datetime) 
// 2012-8-4 14:3:22 

str = getMyDateFormat("Tue Sep 18 2012 01:30:00 GMT+0530 (India Standard Time"); 
// output (in my locale): 2012-8-1 21:0:0 

var now = new Date(); 
str = getMyDateFormat(now); // using a date object 
// output: 2012-8-4 14:3:22 

演示:http://jsfiddle.net/6ByFN/

而且这里是与0的打击垫了个位数的值变体:http://jsfiddle.net/6ByFN/1/

+0

谢谢Shawn Chin,其工作 – nav