2

我正在使用 JavaScript。我有以下格式的日期:

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

我想以下面的格式显示它

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

或者

如何仅从(Tue Sep 18 2012 00:00:00 GMT+0530 (India Standard Time))JavaScript 中的这种格式获取时间?

4

3 回答 3

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) ');
于 2012-09-20T12:57:24.703 回答
1

有几个很好的库可以帮助您处理日期(例如date.jsmoment.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/

于 2012-09-20T13:03:00.280 回答
0

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

http://momentjs.com/

于 2012-09-20T12:27:09.653 回答