2013-10-13 14 views
13

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

12:10:01 

でなければなりません

12:10:1 

の下に、この結果を得る

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

私は、これは同様に時間と分に起こると仮定します。

だから私は後にこの

01:01:01 

ない、この1:1:1

+1

各値が10未満で、ゼロよりも前にあるかどうかをテストする方法はありますか? – Pointy

+0

はい、あなたは正しいです - 良い考え! – laukok

+2

ここをクリックしてください:http://stackoverflow.com/questions/5914020/javascript-date-to-string – rd3n

答えて

27

ソリューション - (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]; 

注:これは、したがって実行に必要な時間が速くなり、任意の外部ファイルやライブラリを含める必要はありません。

+0

本当にいい、単一行のソリューション:)良い。 – maddy

5

私は日付/時刻ライブラリをチェックアウトすることをお勧めします。 Moment.jsが良い例です。あなたは、単にここで

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

以下のように行うことができ

あなたは、このコードスニペットを使用することができますexample from fiddle

+0

そのフィドルは、質問で「16:07:37」の代わりに「04:07:37 pm」をくれました。 – user3070485

+0

私はあなたがドキュメントを読むことをお勧めします。フォーマッタを変更した場合でも、あなたが望むように操作できます。 –

10

です。私はまたそれをjsfiddleに追加して、より安全なコメントを追加しましたので、フィドルをチェックアウトしてください。

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

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

(それはjsfiddleコードスニペットであるようにあなたはまた、単一のファイルに貼り付けできます)あなたのスクリプトにこれらの2つのメソッドを追加します。それがお役に立てば幸いです:)だ

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; 
} 

を: )

+1

文字列を "ブラインドトリム"する代わりに、実際の時間、分、秒を使用しているので、私は受け入れられた答えよりもこの回答を好む。 –

1

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

関連する問題