1

是否有可能做这样的事情:

var parsedDate = new Date("20120830", "yyyyMMdd");

我需要将格式为 yyyyMMdd 的日期字符串 20120830 转换为“30/08/2012”

4

3 回答 3

3

此代码段可以帮助您:

var expired = new Date();
'2012-12-12 08:08'.replace(/(\d{4})-(\d{2})-(\d{2}).*/im, function(str, $1, $2, $3){
    expired.setFullYear($1, $2-1, $3);
});
console.log(expired);
于 2012-10-08T08:00:26.867 回答
0

Bellow 是一个基于 Java 日期格式的简单、可移植、纯 JS 实现:

function date_format( d, p ) {
    var pad = function (n, l) {
        for (n = String(n), l -= n.length; --l >= 0; n = '0'+n);
        return n;
    };
    var tz = function (n, s) {
        return ((n<0)?'+':'-')+pad(Math.abs(n/60),2)+s+pad(Math.abs(n%60),2);
    };
    return p.replace(/([DdFHhKkMmSsyZ])\1*|'[^']*'|"[^"]*"/g, function (m) {
        l = m.length;
        switch (m.charAt(0)) {
                case 'D': return pad(d.getDayOfYear(), l);
                case 'd': return pad(d.getDate(), l);
                case 'F': return pad(d.getDayOfWeek(i18n), l);
                case 'H': return pad(d.getHours(), l);
                case 'h': return pad(d.getHours() % 12 || 12, l);
                case 'K': return pad(d.getHours() % 12, l);
                case 'k': return pad(d.getHours() || 24, l);
                case 'M': return pad(d.getMonth() + 1, l );
                case 'm': return pad(d.getMinutes(), l);
                case 'S': return pad(d.getMilliseconds(), l);
                case 's': return pad(d.getSeconds(), l);
                case 'y': return (l == 2) ? String(d.getFullYear()).substr(2) : pad(d.getFullYear(), l);
                case 'Z': return tz(d.getTimezoneOffset(), ' ');
                case "'":
                case '"': return m.substr(1, l - 2);
                default: throw new Error('Illegal pattern');
        }
    });
};
console.log( date_format( new Date(), 'yyyy.mm.dd kk:MM:ss Z' ) );
console.log( date_format( new Date(), 'MM/dd/yyyy HH:mm:ss' ) );

以上代码基于http://llamalab.com/js/date/Date.js (LGPL)

于 2013-11-28T15:29:50.360 回答
0

Date(dateString) 构造函数不接受自定义日期格式(某些浏览器实现了一些替代格式,但出于兼容性原因应避免使用这些格式)。但也有替代构造函数 Date(year, month, day) 并且您的日期格式很容易用切片分割。不过要小心:月份是从零开始的,而不是从一开始的。所以二月是 00,十二月是 11。

相关问题:Javascript Date() 构造函数不起作用

于 2012-08-30T09:53:17.743 回答