浏览器的兼容日期格式

时间:2015-12-19 12:21:32

标签: javascript date

我正在尝试使用以下方法显示“ dd-mm-yyyy ”日期格式

$recordChunks = array_chunk($records, parent::CHUNK_SIZE);

    foreach($recordChunks as $chunk) {          
        self::insert($chunk);
    }

但我没有在chrome

中获得所需的格式

Chrome:2016年6月11日

Firefox:2016年6月11日

3 个答案:

答案 0 :(得分:2)

它可能无法直接回答您的问题,但我建议您尝试momentjs。它是一个Javascript库,允许您操作和格式化日期,并且不止一次保存了我的隐藏。在你的情况下,你会做类似

的事情
document.getElementById('engStartDate').value = moment(endDate).format('DD-MM-YYYY);

答案 1 :(得分:0)

我强烈建议您手动操作或使用lib 我写了一个关于合成数据时间的例子。

<br>
var datetimeFormat = function ( datetime, formatStr) {
        var obj = null;
        if (({}).toString.call(datetime) === '[object Date]') {
            obj = datetime;
        } else {
            datetime = +datetime || 0;
            datetime = datetime < +new Date() / 100 ? datetime * 1000 : datetime;
            obj = new Date(datetime);
        }
        var str = formatStr;
        var Week = ['Sun', 'Mon', 'Tue', 'Wen', 'Tur', 'Fri', 'Sat'];

        str = str.replace(/yyyy|YYYY/, obj.getFullYear());
        str = str.replace(/yy|YY/,('0' + obj.getYear() % 100).slice(-2));
        var month = obj.getMonth() + 1;
        str = str.replace(/MM/, ('0' + month).slice(-2));
        str = str.replace(/M/g, month);

        str = str.replace(/w|W/g, Week[obj.getDay()]);

        str = str.replace(/dd|DD/, ('0' + obj.getDate()).slice(-2));
        str = str.replace(/d|D/g, obj.getDate());

        str = str.replace(/hh|HH/, ('0' + obj.getHours()).slice(-2));
        str = str.replace(/h|H/g, obj.getHours());
        str = str.replace(/mm/, ('0' + obj.getMinutes()).slice(-2));
        str = str.replace(/m/g, obj.getMinutes());

        str = str.replace(/ss|SS/, ('0' + obj.getSeconds()).slice(-2));
        str = str.replace(/s|S/g, obj.getSeconds());
        return str;
    }

document.getElementById('engStartDate').value = datetimeFormat(new Date(), 'dd-MM-yyyy')

答案 2 :(得分:0)

Date.prototype.toLocaleString不接受任何参数,结果完全取决于实现。

如果你想要一个特定的格式,你可以使用一个库但是编写一个简单的函数来输出dd-mm-yyyy格式并不难:

function toDMY(d) {
  function z(n){return (n<10?'0':'')+n}
  return z(d.getDate()) + '-' + z(d.getMonth()+1) + '-' + d.getFullYear();
}

document.write(toDMY(new Date()));

还有ECMAScript Internationalization API 1.0 (ECMA-402)(也在MDN上),但它还没有得到很好的支持。