10

ウェブサイトのヘッダーに配置する時計を作成しました。10分未満の時間はゼロを表示していません。たとえば、時間が10:50の場合、10:5しか表示されません。解決策を見つけましたが、実装方法がわかりません。また、より良い方法があれば共有してください。

 var current;
window.onload = function () {

    current = new Date();

    document.getElementById("clock").innerHTML = current.getHours() + ":" +      current.getMinutes(); 

これは私が必要なものです

                if (minutes < 10)
                minutes = "0" + minutes

これが私の時計の入れ物です

    <span id="clock">&nbsp</span>
4

5 に答える 5

38

時間文字列の最初の 5 文字を取得できます。

(new Date()).toTimeString().substr(0,5)
于 2013-01-25T20:12:33.293 に答える
15

将来、同じように表示上の問題に遭遇する可能性が高いため、Javascriptのお気に入りの文字列書式設定関数を選択することをお勧めします。

いくつかの例:

次に、次のようなこと、"{0:00}:{1:00}".format(current.getHours(), current.getMinutes())またはそれ以上のことを行うことができます。

var d = new Date();
var s = d.format("hh:mm:ss tt");
// Result: "02:28:06 PM"
于 2013-01-25T20:08:36.407 に答える
14

そして、あなたの問題は何ですか?

var minutes = (current.getMinutes() < 10? '0' : '') + current.getMinutes();

時間についても同じ問題が発生するため、小さなユーティリティ関数でラップします。

function pad(var value) {
    if(value < 10) {
        return '0' + value;
    } else {
        return value;
    }
}

そして後で簡単に:

pad(current.getHours()) + ":" + pad(current.getMinutes())
于 2013-01-25T19:56:35.343 に答える
1

私はこのようにしてみました。短くはありませんが、機能します。

var dt = new Date();
if (parseInt(dt.getMinutes()) < 10) {minutes = "0" + dt.getMinutes();} else minutes = dt.getMinutes();
if (parseInt(dt.getSeconds()) < 10) {seconds = "0" + dt.getSeconds();} else seconds = dt.getSeconds();

var time = dt.getHours() + ":" + minutes + ":" + seconds;
document.write("Now is:" + time);

//Result: Now is: 22:47:00

役に立つことを願っています

于 2015-03-26T21:56:47.953 に答える