0

次のコードで日付を生成すると

var date = new Date();

次の形式の日時を取得します

Sat May 11 2013 21:54:23 GMT-0700 (PDT)

正規表現/文字列関数を使用せずに以下の形式の日付を生成する方法を教えてください。

Sat May 11 2013 21:54:23
4

2 に答える 2

1

Javascript には、表示される特定の形式以外の日付形式ライブラリは付属していません。必要な正確な部分をつなぎ合わせて文字列を追加することで独自のものを作成するか、サードパーティの日付書式ライブラリを入手できます。

サードパーティのライブラリが必要な場合は、Datejsライブラリが非常に充実しています。そのライブラリでは、次のようになります。

Date.today().toString("ddd MMM d yyyy H:mm:ss");

もちろん、組み込みの日付オブジェクトからすべてのコンポーネント値を取得してから、独自の文字列を作成することもできます。

ライブラリを追加しないと、その特定の形式を作成する独自の方法を作成する必要があります。

function formatDate(date) {
    function makeTwoDigits(val) {
        var prefix = val <= 9 ? "0" : "";
        return prefix + val;
    }
    var dayOfWeek = date.getDay();                  // 0-6, 0=Sunday
    var month = date.getMonth();                    // 0-11
    var day = date.getDate();                       // 1-31
    var year = date.getFullYear();                  // 2013
    var hours = makeTwoDigits(date.getHours());     // 0-23
    var mins = makeTwoDigits(date.getMinutes());    // 0-59
    var secs = makeTwoDigits(date.getSeconds());    // 0-59

    var days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
    var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

    return days[dayOfWeek] + " " + months[month] + " " + day + " " + year + " " +
           hours + ":" + mins + ":" + secs;
}

実際のデモ: http://jsfiddle.net/jfriend00/zu7Uz/

于 2013-05-12T05:11:44.740 に答える