28

この hh:mm:ss を日付オブジェクトから取得するにはどうすればよいですか?

var d = new Date(); // for now
datetext = d.getHours()+":"+d.getMinutes()+":"+d.getSeconds();

私は時々この結果を以下に得ます、

12:10:1

どちらであるべきか

12:10:01

これは時間と分にも起こると思います。

だから私はこの後です

01:01:01

この 1:1:1 ではない

4

4 に答える 4

68

解決策 - (tl;dr バージョン)

datetext = d.toTimeString().split(' ')[0]

説明:

toTimeString完全な時間を返します。それをスペースで分割して時間コンポーネントのみを取得し、次に使用する最初の値を取得します。:)

完全なフロー:

d = new Date();
// d is "Sun Oct 13 2013 20:32:01 GMT+0530 (India Standard Time)"
datetext = d.toTimeString();
// datestring is "20:32:01 GMT+0530 (India Standard Time)"
// Split with ' ' and we get: ["20:32:01", "GMT+0530", "(India", "Standard", "Time)"]
// Take the first value from array :)
datetext = datetext.split(' ')[0];

注:これには、外部ファイルやライブラリを含める必要がないため、実行に必要な時間が短縮されます。

于 2013-10-13T14:58:49.857 に答える
15

このコード スニペットを使用できます。タイプセーフなコメントも追加したjsfiddleので、必ずフィドルをチェックしてください。

jQuery を使用している場合は、ready 関数内で呼び出します。それ以外の場合は、プレーンな JavaScript を使用してフィールドの値を更新できます。

$(document).ready(function(){
    var d = new Date();
    var formatted_time = time_format(d);
    $('#yourTimeField').text(formatted_time);
});

これら 2 つのメソッドをスクリプトに追加します ( jsfiddleコード スニペットのように、単一のファイルに貼り付けることもできます)。

function time_format(d) {
    hours = format_two_digits(d.getHours());
    minutes = format_two_digits(d.getMinutes());
    seconds = format_two_digits(d.getSeconds());
    return hours + ":" + minutes + ":" + seconds;
}

function format_two_digits(n) {
    return n < 10 ? '0' + n : n;
}

それだけです:)それが役立つことを願っています:)

于 2013-10-13T15:28:49.413 に答える
15

日付/時刻ライブラリをチェックアウトすることをお勧めします。Moment.jsは 1 つの良い例です。

以下のように簡単に行うことができます

var d = new Date();
var formatteddatestr = moment(d).format('hh:mm:ss a');

これはフィドルの例です

于 2013-10-13T14:58:52.837 に答える
1

http://momentjs.com/を使用して試すこともできます。日付の解析、検証、操作、および書式設定のための JavaScript 日付ライブラリ。

于 2013-10-13T15:52:18.270 に答える