0

JSON で以下のように日付/時刻の値を取得します。

"ChangedDate":"\/Date(1349469145000)\/"

FF と IE では、以下のヘルパー関数を使用して、上記の日付を 12 時間形式 (2012 年 10 月 5 日 - 午後 3:32:25) で取得します。

Handlebars.registerHelper('FormatDate', function (date) {
            if (date == null)
                return "";
            else {
                var value = new Date(parseInt(date.substr(6)));
                return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear() + " - " + value.toLocaleTimeString();
            }
        });

ただし、Chrome ではまだ 24 時間形式 (2012 年 10 月 5 日 - 15:32:25) を取得します。

Chromeで12時間形式で日付/時刻の値を取得するにはどうすればよいですか?

4

1 に答える 1

3

ユーザーが選択した地域の形式を使用して書式設定された文字列をユーザーに表示することが目的の場合は、toLocaleTimeStringを使用します。この方法は、その性質上、オペレーティング システムとユーザーの設定によって動作が異なることに注意してください。

この行を変更した方がよい場合があります。

return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear() + " - " + value.toLocaleTimeString();

に:

return value.getMonth() + 1 + "/" + value.getDate() + "/" + value.getFullYear() + " - " + (value.getHours() > 12 ? value.getHours() - 12 : value.getHours()) + ":" + value.getMinutes() + ":" + value.getSeconds();

時間があるかどうかを確認し、 > 12そうであれば、その数値から 12 を引きます。

(value.getHours() > 12 ? value.getHours() - 12 : value.getHours())

したがって、あなたの例15:32:25は次のようになり15 - 12 = 3ます3:32:25

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getSeconds

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getMinutes

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/getHours

編集

//set up example
var date = new Date("10/5/2012");
date.setHours(15,32,25,00);

//Get data from date
var month = date.getMonth()+1;
var day = date.getDate();
var year = date.getFullYear();

var hours = date.getHours();
var amOrPm = "AM";
if(date.getHours() > 12){
    hours = date.getHours() - 12;
    amOrPm = "PM";
}

var minutes = date.getMinutes();
if(minutes  < 10)
    minutes = "0" + minutes;

var seconds = date.getSeconds();
if(seconds < 10)
    seconds = "0" + seconds;

var dateString = month + "/" + day + "/" + year + " - " + hours + ":" + minutes + ":" + seconds;

console.log(dateString);

この例は必要以上に詳しく説明しましたが、何が起こっているかを示すのに役立ちます。それが役に立てば幸い。

これを要約すると、次のようになります。

//Get data from date
var dateString = (date.getMonth()+1) + "/" + date.getDate() + "/" +  date.getFullYear() + " - " + (date.getHours() > 12 ? date.getHours() - 12 : date.getHours())+ ":" + (date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) + ":" + (date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds()) + " " + (date.getHours() > 12 ? "PM" : "AM");

于 2012-10-08T15:10:56.950 に答える