199

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

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

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

しかし、たとえば、現在の時刻だけが必要です。05:45

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

4

21 に答える 21

269
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
于 2012-05-15T10:51:15.193 に答える
190

短くてシンプル:

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

4時間後(ミリ秒を使用:sec == 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
于 2015-11-16T10:36:37.997 に答える
98

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

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

(master.jsで1回設定し、必要に応じて呼び出します。)

純粋なJavaScript

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

于 2014-08-06T15:13:18.883 に答える
29

試す

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

または

new Date().toTimeString().split(" ")[0];
于 2015-02-04T16:16:02.993 に答える
25

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

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

于 2020-06-26T07:24:32.013 に答える
13

const date = Date().slice(16,21);
console.log(date);

于 2017-10-06T06:42:54.120 に答える
10

意味は:

var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
于 2012-05-15T10:51:18.553 に答える
7

これを試して:

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();
于 2012-05-15T10:52:27.800 に答える
6
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;
}
于 2018-05-21T07:42:48.393 に答える
5

これがあなたのやり方です。

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

于 2017-02-07T08:59:33.637 に答える
4

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

于 2014-11-13T19:17:13.817 に答える
3

これ -

var x = new Date(); 
var h = x.getHours(); 
var m = x.getMinutes(); 
var s = x.getSeconds(); 

それで-

 x = date
h = hours
m = mins
s = seconds
于 2013-11-09T17:46:53.737 に答える
2

ES6でこれを要求した形式(hh:mm)で行う簡単な方法は、次のようになります。

const goodTime = `${new Date().getHours()}:${new Date().getMinutes()}`;

console.log(goodTime);

(明らかに、コンソールロギングはソリューションの一部ではありません)

于 2021-06-09T22:36:11.633 に答える
1

これが最短の方法です。

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

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

var now = new Date()
console.log(now.toString().substr(16,8))
于 2016-10-10T18:34:36.417 に答える
1
var today = new Date();  //gets current date and time
var hour = today.getHours();         
var minute = today.getMinutes();
var second = today.getSeconds();
于 2018-11-01T19:24:35.023 に答える
1

日付と時刻を分離し、時刻と日付の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
}
于 2019-05-06T09:39:15.900 に答える
1

これを試して

new Date().toTimeString().slice(0, 8);

また

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

動作するはずです。

于 2021-07-15T07:58:30.760 に答える
0

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

time = new Date();

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

document.getElementById("time").value = hh + ":" + mm + ":" + ss;
于 2015-04-30T12:05:49.663 に答える
0

これは私にとってはうまくいきましたが、これはあなたがヒットしたときに何を得るかに依存しますDate()

Date().slice(16,-12)
于 2018-10-06T12:45:27.033 に答える
0

これが私がこれを行う方法です:(それが誰かを助けることを願っています)私がしていることは、ユーザーがHTML時間入力に入力した時間を過去のものではないことを検証することです:

let inputTime = value; // from time input in html (06:29)

const splittedInputTime = inputTime.split(':');

let currentDate = new Date();
currentDate.setHours(splittedInputTime[0]);
currentDate.setMinutes(splittedInputTime[1]);

const finalInputTime = currentDate.toTimeString().split(" ")[0];

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

// Returns a boolean (true/ false)
let validTime = finalInputTime >= currentTime;
于 2021-09-18T11:15:05.247 に答える
-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;
于 2018-04-30T11:14:04.860 に答える