Вопрос по javascript – Как узнать текущее время только в JavaScript

101

Как я могу получить текущее время в JavaScript и использовать его в таймере?

Я старалсяvar x = Date() и получил:

Tue May 15 2012 05:45:40 GMT-0500

Но мне нужно только текущее время, например,05:45

Как я могу присвоить это переменной?

@swati - я знаю, что вы написали этот комментарий более 3 лет назад, но теперь эта страница является результатом поиска # 1 в Google по запросу "получить временную часть JavaScript". Имейте в виду, что сегодняшний вопрос - это завтрашние результаты поиска. David Deutsch
new Date().toLocaleTimeString(); это самый простой способ; Жаль, что решение здесь едва заметно. vaxquis
@swati Потому что мы хотим, чтобы это стало источником всех наших проблем программирования. Может быть, у кого-то есть лучшее решение, и таким образом они могут быть перечислены в качестве ссылки в одном месте. Alfred

Ваш Ответ

16   ответов
7

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();
4
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, приведенный выше код должен работать отлично.
3
var date = Date().slice(16,21);
document.write(date);
59
Get and set the current time efficiently using javascript

которое бы делало именно то, что мне нужно. Я хотел чистый и крошечный код, поэтому я придумал это:

(Set once in your master.js and invoke when required.)

PURE 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" />

Попробуйте это на jsfiddle

время показывается для меня на 30 минут позже, если я нажму на Set time, это правильно, но в военное время. Установить время должно быть переключение догадки, что не работает
Не уверен, почему за это больше не проголосовали ... хорошая работа!
@QPaysTaxes Мой ответ делает оба. Javascript получает время, а HTML показывает пользователю, как код может быть использован для установки времени, если это необходимо. Я обновил свой ответ, чтобы отразить это. спасибо за указание на это.
... Вы опечатали? как "установить"? Если нет, ваш ответ не соответствует вашему названию, а ваш заголовок не соответствует вопросу.
@ gcoleman0828 Я опоздал на вечеринку. Спасибо за голосование :)
69

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

4 часа спустя (используйте milisec: 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
Расчет сложения и вычитания полезен!
-1

но это зависит от того, что вы получите, когда вы нажметеDate():

Date().slice(16,-12)
Это выглядит идентично существующему ответу:stackoverflow.com/a/46599746/3294944
173
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
var d = new Date("2011-04-20 09:30:51.01"); alert(d.getHours()); // => 9  выходNaN
@ Chinmay235 ДобавленоT так что теперь это правильный универсальный iso. Кстати, я вижу толькоundefined в IE. В любом случае исправлено.
0
var today = new Date();  //gets current date and time
var hour = today.getHours();         
var minute = today.getMinutes();
var second = today.getSeconds();
Как это добавляет что-либо к существующим ответам? Основной проблемой было отсутствиеnew.
4

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

так-

 x = date
h = hours
m = mins
s = seconds
-1
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;
19

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

Или же

new Date().toTimeString().split(" ")[0];
Во второй форме, если вы используете просто toString () и меняете 0 на 4, вы также получаете только время в формате ЧЧ: ММ: СС.
2

time = new Date();

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

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

var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
1

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

Здесь также есть способ манипуляции со строками, который не был упомянут.

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

var date = new Date();
var time = date.toTimeString().split(' ')[0].split(':');

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

Похожие вопросы