适用于浏览器的兼容日期格式

Compatible date formats for browser

本文关键字:日期 格式 浏览器 适用于      更新时间:2023-09-26

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

document.getElementById('engStartDate').value=endDate.toLocaleDateString('en-IN',options);

但我没有在chrome 中获得所需的格式

Chrome:2016年6月11日

Firefox:2016年6月11日

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

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

Date.protype.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国际化API 1.0(ECMA-402)(也在MDN上),但它还没有得到很好的支持。

我强烈建议您手动执行或使用lib
我写了一个甲酸酯数据时间的例子。

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')
<input type='text' id='engStartDate'/>