在Javascript中格式化日期

时间:2014-10-10 07:28:57

标签: javascript date datetime format

我必须在某个文件中使用datetime记录我的错误,因为我使用以下代码:

var dLogDate = new Date();
console.log(dLogDate.toString().substring(4) + ', ' + dLogDate.toGMTString().substring(4));

按照上面的代码输出如下,这很好,但没有按照我的需要格式化:

"Oct 10 2014 12:48:59 GMT+0530 (IST),  10 Oct 2014 07:18:59 GMT"

我希望结果如下:

"10 Oct 2014 12:48:59 (IST),  10 Oct 2014 07:18:59 (GMT)"

在","之前查看日期部分。我需要 10月10日 设置 10月10日

这可以通过一些函数来完成,这个函数是字符串的前4个字符的子串,再次是第3个位置的concat,但是我仍然很想知道是否还有其他简单的方法可以做到这一点?我不想使用任何第三方库/脚本。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用日期功能格式化日期

http://www.w3schools.com/jsref/jsref_obj_date.asp

var monthIndex = date.getMonth();

var dayIndex = date.getDay();

var monthArray = ['January',....];

var dayArray = ['Sunday',...]

console.log(monthArray[monthIndex] + "-" + dayArray[dayIndex]);

答案 1 :(得分:0)

您可以尝试向原型添加扩展方法toISTString

function pad(n) {
    return (n < 10) ? '0' + n : n;
}

Date.prototype.toISTString = function(locale) {
    var year = this.getFullYear().toString();
    var month = this.toLocaleString(locale, { month: "short" }) // ECMAScript Internationalization API, which is very new only available in Blink browsers (Chrome and Opera), IE11, and Firefox 29+.
    var day  = this.getDate().toString();
    var hrs = this.getHours().toString();
    var mins = this.getMinutes().toString();   
    var secs = this.getSeconds().toString();
    return day + " " + month + " " + year + " " + pad(hrs) + ":" + pad(mins) + ":" + secs + " (IST)";
};

dLogDate = new Date();
console.log(dLogDate.toISTString("en-us") + ', ' + dLogDate.toGMTString().substring(4));

<强> JSFiddle