首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript toLocaleString 跨平台日期格式不一致:自定義格式化函數統一輸出

     編輯:程式設計綜合問答

現象

`new Date(ts).toLocaleString()` 在 Windows (2015/9/1)、iOS (2015年9月1)、Android (Tue Sep 01) 格式各異。

原因

`toLocaleString` 依賴**宿主環境區域設置**,ECMA 標準未強制統一格式。

解決方案

1. 手動拼接 (最簡單、零依賴)

function formatDate(ts) {
    var d = new Date(ts);
    return d.getFullYear() + '/' + (d.getMonth()+1) + '/' + d.getDate()
         + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
}

2. 擴展 Date 原型 (慎用,污染全局)

Date.prototype.toLocaleString = function() {
    return this.getFullYear()+'-'+(this.getMonth()+1)+'-'+this.getDate()
         +' '+this.getHours()+':'+this.getMinutes()+':'+this.getSeconds();
};

3. 使用成熟庫 (推薦生產環境)

  • date-fns:`format(new Date(ts), 'yyyy/MM/dd HH:mm:ss')`
  • dayjs:`dayjs(ts).format('YYYY/MM/DD HH:mm:ss')`
  • moment.js (維護模式)

總結

跨平台統一格式**不要依賴 toLocaleString**,自行格式化或引入輕量庫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved