簡體   English   中英

Javascript Date toString轉換並格式化為本地時間

[英]Javascript Date toString convert and format to local time

我有一個腳本,該腳本以以下格式獲取日期/時間:

2017-06-15 21:00

然后將其轉換為本地時間,並顯示為:

Thu Jun 15 2017 17:00:00 GMT-0400 (Eastern Daylight Time)

腳本:

$(document).ready(function() {
    $('.plg-date > .fabrikElement > div').each(function() {
        var date = $(this).text();
        var newdate = new Date(date + " UTC");
        console.log(newdate);
        $(this).text(newdate.toString());
    })
})

我將如何格式化toString以便輸出是這樣的?

Thu Jun 15 2017 5:00:00 PM Eastern Daylight Time

您必須自己解析它。 有一些庫也可以做到這一點(Stack Overflow規則建議不要提出建議,但是如果您使用Google“ javascript日期格式庫”,會發現它們),但是如果您要使用純JavaScript來實現,我只需要自己構建字符串即可。

由於您已經在創建Date對象,因此您已經完成了一半。

Date對象只有數字,因此不會包含ThuJunEastern Daylight Time類的字符串。 對於這些,您將需要列出可能的值並將其映射到它們(通常可以使用一個簡單的數組)。

對於5:00:00 PM部分,可以MOD( % 12)小時,然后指定AM如果hours < 12PM如果hours >= 12

const time = (d.getHours() % 12) + ':' + d.getMinutes() + ':' + d.getSeconds() + (d.getHours() < 12 ? 'AM' : 'PM');

我不會提供完整的JavaScript,因為您應該自己動手編寫腳本。 如果您有任何麻煩,請再問一個問題。

您也可以使用toLocaleString()組合,但是它不能滿足您的所有需求(例如,它不執​​行12小時日期格式)。

如果您可以使用外部庫,我建議使用momentjs使用此庫:

moment('2017-06-15 21:00').format('ddd MMM DD YYYY h:mm:ss A')
// => "Thu Jun 15 2017 9:00:00 PM"

使用@James建議使用toLocaleString()

$(document).ready(function() {
    $('.plg-date > .fabrikElement > div').each(function() {
        if($(this).text().length > 0) {
            var date = $(this).text();
            var newdate = new Date(date + " UTC");
            var options = { 
                year: 'numeric', 
                month: 'numeric', 
                day: 'numeric',
                hour: '2-digit',
                minute: '2-digit',
                timeZoneName: 'short'
            }
            $(this).text(newdate.toLocaleString('en-US', options)); 
        }
    })
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM