JavaScriptでのみ現在の時刻を取得する方法


144

JavaScriptで現在の時刻を取得してタイムピッカーで使用するにはどうすればよいですか?

私が試してみvar x = Date()ました:

2012年5月15日火曜日05:45:40 GMT-0500

しかし、私は現在の時間だけが必要です、例えば、 05:45

これを変数に割り当てるにはどうすればよいですか?


15
@swatiこれをすべてのプログラミング問題のgotoソースにしたいからです。たぶん、他の誰かがより良い解決策を持っているかもしれません、そしてこのようにして、それらはすべて一箇所に参照としてリストされることができます。
アルフレッド

27
@swati-3年以上前にそのコメントを書いたことは知っていますが、このページは「get time part JavaScript」のGoogleでの1位の検索結果です。今日の質問は明日の検索結果です。
David Deutsch 2015

@DavidDeutschこれは、[質問をする]ページの太字の見出しのようになります。「今日の質問は明日の検索結果です」
Vaulstein

回答:


220
var d = new Date("2011-04-20T09:30:51.01");
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

または

var d = new Date(); // for now
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

1
var d = new Date("2011-04-20 09:30:51.01"); alert(d.getHours()); // => 9 出力NaN
Chinmay235 2015年

1
@ Chinmay235が追加されたTので、適切なユニバーサルISOになりました。ところで私undefinedはIEでしか見ません。とにかく修正されました。
Royi Namir

126

短くてシンプル:

new Date().toLocaleTimeString(); // 11:18:48 AM
//---
new Date().toLocaleDateString(); // 11/16/2015
//---
new Date().toLocaleString(); // 11/16/2015, 11:18:48 PM

4時間後(ミリ秒を使用:秒== 1000):

new Date(new Date().getTime() + 4*60*60*1000).toLocaleTimeString(); // 3:18:48 PM or 15:18:48

2日前:

new Date(new Date().getTime() - 2*24*60*60*1000).toLocaleDateString() // 11/14/2015

6
足し算と引き算の計算は役に立ちます!
Dov Miller、

代わりに1分追加したい場合、何に変更する必要がありますか?
lets0code

79

JavaScriptを使用して現在時刻を効率的に取得および設定する

私が必要とするものを正確に実行するソリューションを見つけることができませんでした。私はクリーンで小さなコードが欲しかったのでこれを思いつきました:

(master.jsに一度設定して、必要なときに呼び出します。)

ピュアジャバスクリプト

function timeNow(i) {
  var d = new Date(),
    h = (d.getHours()<10?'0':'') + d.getHours(),
    m = (d.getMinutes()<10?'0':'') + d.getMinutes();
  i.value = h + ':' + m;
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />


更新

単に使用するのに十分なブラウザのサポートがあります: toLocaleTimeString

以下のためにHTML5のタイプtime形式でなければなりませんhh:mm

function timeNow(i) {
  i.value = new Date().toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />

Try it on jsfiddle


3
@ gcoleman0828パーティーに遅れました。投票ありがとうございます:)
DreamTeK 2014年

...「get」を「set」と入力しましたか?そうでない場合、回答がタイトルと一致せず、タイトルが質問と一致しません。
モニカの訴訟に資金を提供

@QPaysTaxes私の答えは両方を行います。javascriptは時間を取得し、htmlは、必要に応じてコードを使用して時間を設定する方法もユーザーに示します。私はそれを反映するために私の答えを更新しました。指摘してくれてありがとう。
DreamTeK

時間は30分遅れて表示されています。[Set time]をクリックすると、正確ですが、軍事時間です。設定時間は機能しないトグル推測である必要があります
Ciasto piekarz 2017年

toLocaleTimeは、ブラウザーのロケールに応じて異なる形式になります。代わりに、frのようなPM / AMなしの固定ロケールを使用して、時間に一致するhtml5時間形式を取得できますnew Date().toLocaleTimeString('fr', {hour: '2-digit', minute:'2-digit'});
Tofandel

24

試す

new Date().toLocaleTimeString().replace("/.*(\d{2}:\d{2}:\d{2}).*/", "$1");

または

new Date().toTimeString().split(" ")[0];

2番目の形式では、toString()だけを使用して0を4に変更すると、時刻もHH:MM:SSという形式で取得されます。
BigMac66 2016



6

これを試して:

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();

5
function getCurrentTime(){
    var date = new Date();
    var hh = date.getHours();
    var mm = date.getMinutes();

    hh = hh < 10 ? '0'+hh : hh; 
    mm = mm < 10 ? '0'+mm : mm;

    curr_time = hh+':'+mm;
    return curr_time;
}

必要なのは秒のない時間で、PMやAMの部分は必要ない場合、上記のコードは完全に機能するはずです。
Hamfri

3

これらの日付メソッドを参照してください...

  • toLocaleTimeString- https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString

  • toTimeString- https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString


3

この方法でそれを行うことができます。

const date = new Date();
const time = date.toTimeString().split(' ')[0].split(':');
console.log(time[0] + ':' + time[1])


1
これは不可解であるか、それよりも優れていnew Date().toTimeString().slice(0, 5)ます。
Dan Dascalescu、

1
@DanDascalescu(主に)Python開発者として、私はあなたが提供した不可解なワンライナーに感謝し、Parmeet Singhの簡潔な回答(参照していると想定しています)を表示するのに十分なほどページを下にスクロールしなかったでしょう。ありがとう!
Jason R Stevens CFA


1

このメソッドを使用するだけです。

console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit", hour12: false }));
console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit" }));


0

これが最短の方法です。

var now = new Date().toLocaleTimeString();
console.log(now)

ここにも、言及されていない文字列操作の方法があります。

var now = new Date()
console.log(now.toString().substr(16,8))

最短はDate().substr(16, 5)です。あなたは必要ありませんtoString()
Dan Dascalescu

0

変数に割り当てて表示します。

time = new Date();

var hh = time.getHours();
var mm = time.getMinutes();
var ss = time.getSeconds() 

document.getElementById("time").value = hh + ":" + mm + ":" + ss;

なぜこれをtime要素に格納する必要があると仮定するのですか?OPは、変数への格納を要求しました。let time = Date().substr(16, 5)それを行います。
Dan Dascalescu

0

日付と時刻を分離し、時刻と日付のHTML入力と互換性のあるフォーマットを取得するシンプルな関数

function formatDate(date) {
  var d         = new Date(date),
      month = '' + (d.getMonth() + 1),
      day   = '' + d.getDate(),
      year  = d.getFullYear();

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return [year, month, day].join('-');
}

function formatTime(date) {
        var hours   = new Date().getHours() > 9 ? new Date().getHours() : '0' + new Date().getHours()
        var minutes = new Date().getMinutes() > 9 ? new Date().getMinutes() : '0' + new Date().getMinutes()

        return hours + ':' + minutes
}

-1
var today = new Date();  //gets current date and time
var hour = today.getHours();         
var minute = today.getMinutes();
var second = today.getSeconds();

1
これは既存の答えにどのように追加されますか?中心的な問題は、がないことでしたnew
RomainValeri


-3
var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = hours >= 12 ? 'pm' : 'am';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0'+minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;
        console.log(strTime);
        $scope.time = strTime;

        date.setDate(date.getDate()+1);
        month = '' + (date.getMonth() + 1),
        day = '' + date.getDate(1),
        year = date.getFullYear();
        if (month.length < 2) month = '0' + month;
        if (day.length < 2) day = '0' + day;
        var tomorrow = [year, month, day].join('-');
        $scope.tomorrow = tomorrow;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.