Как узнать текущее время с помощью jQuery


129

Следующее возвращает время в микросекундах, например 4565212462.

alert( $.now() );

Как мне преобразовать его в удобочитаемый формат времени, например (часы: минуты: секунды) ?


1
Вам не нужен jQuery, $.now()поскольку JavaScript имеет встроенную реализацию: stackoverflow.com/questions/20456712/…
Джош Крозье

Исправления: (1) он был заменен на собственный Date.now (), и (2) возвращаемое время указывается в миллисекундах, а не в микросекундах.
den232

Ответы:


305

Вы можете попробовать вот так:

new Date($.now());

Также с помощью Javascript вы можете сделать так:

var dt = new Date();
var time = dt.getHours() + ":" + dt.getMinutes() + ":" + dt.getSeconds();
document.write(time);


7
Обратите внимание, что .getHours () возвращает часы в часовом поясе локального компьютера. Если пользователь использует свой браузер в другом часовом поясе, чем вы, он получит другие результаты от getHours. Это также верно для метода .toString (). Управлять часовым поясом в javascript сложно (вам нужно рассчитать смещение между вашим и желаемым часовым поясом и соответственно изменить дату). Итак, как упоминалось в другом ответе, использование moment.js кажется хорошей идеей. momentjs.com
Крис

1
Вам также следует рассмотреть возможность включения padStart в каждый get: dt.getMinutes (). ToString.padStart (2, '0'). Это гарантирует, что числа останутся двухзначными с дополненным нулем, и это будет соответствовать предлагаемой функциональности javascript - так красиво на будущее: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
Negative Zero

2
@NegativeZero Действительно полезное (если не существенное) предложение. К сожалению, у меня это не сработало в Firefox (я не тестировал в других браузерах). Однако переписав его как String (dt.getMinutes ()). PadStart (2, '0') у меня работает.
biscuitstack

54

Вам нужно получить все "числа" вручную

как это:

var currentdate = new Date(); 
    var datetime = "Now: " + currentdate.getDate() + "/"
                + (currentdate.getMonth()+1)  + "/" 
                + currentdate.getFullYear() + " @ "  
                + currentdate.getHours() + ":"  
                + currentdate.getMinutes() + ":" 
                + currentdate.getSeconds();

document.write(datetime);


39

Преобразуйте Dateобъект в строку, используя один из Date.prototypeгеттеров преобразования , например:

var d = new Date();
d+'';                  // "Sun Dec 08 2013 18:55:38 GMT+0100"
d.toDateString();      // "Sun Dec 08 2013"
d.toISOString();       // "2013-12-08T17:55:38.130Z"
d.toLocaleDateString() // "8/12/2013" on my system
d.toLocaleString()     // "8/12/2013 18.55.38" on my system
d.toUTCString()        // "Sun, 08 Dec 2013 17:55:38 GMT"

Или, если вы хотите, чтобы он был более настроен, просмотрите список Date.prototypeметодов получения .


25

Для этого не нужно использовать jQuery!

Собственная реализация JavaScript - этоDate.now() .

Date.now()и $.now()вернуть то же значение:

Date.now(); // 1421715573651
$.now();    // 1421715573651
new Date(Date.now())   // Mon Jan 19 2015 20:02:55 GMT-0500 (Eastern Standard Time)
new Date($.now());     // Mon Jan 19 2015 20:02:55 GMT-0500 (Eastern Standard Time)

..и если вы хотите, чтобы время было отформатировано в формате чч-мм-сс:

var now = new Date(Date.now());
var formatted = now.getHours() + ":" + now.getMinutes() + ":" + now.getSeconds();
// 20:10:58

1
Вам не нужно указывать параметры для new Date (), поскольку по умолчанию он установлен на now.
Эндрю Спод

1
@Spode Ах, хорошее замечание. Я не уверен, почему тогда другие ответы использовали jQuery.
Джош Крозье,

17

.clock {
width: 260px;
margin: 0 auto;
padding: 30px;
color: #FFF;background:#333;
}
.clock ul {
width: 250px;
margin: 0 auto;
padding: 0;
list-style: none;
text-align: center
}

.clock ul li {
display: inline;
font-size: 3em;
text-align: center;
font-family: "Arial", Helvetica, sans-serif;
text-shadow: 0 2px 5px #55c6ff, 0 3px 6px #55c6ff, 0 4px 7px #55c6ff
}
#Date { 
font-family: 'Arial', Helvetica, sans-serif;
font-size: 26px;
text-align: center;
text-shadow: 0 2px 5px #55c6ff, 0 3px 6px #55c6ff;
padding-bottom: 40px;
}

#point {
position: relative;
-moz-animation: mymove 1s ease infinite;
-webkit-animation: mymove 1s ease infinite;
padding-left: 10px;
padding-right: 10px
}

/* Animasi Detik Kedap - Kedip */
@-webkit-keyframes mymove 
{
0% {opacity:1.0; text-shadow:0 0 20px #00c6ff;}
50% {opacity:0; text-shadow:none; }
100% {opacity:1.0; text-shadow:0 0 20px #00c6ff; } 
}

@-moz-keyframes mymove 
{
0% {opacity:1.0; text-shadow:0 0 20px #00c6ff;}
50% {opacity:0; text-shadow:none; }
100% {opacity:1.0; text-shadow:0 0 20px #00c6ff; } 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Making 2 variable month and day
var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; 
var dayNames= ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]

// make single object
var newDate = new Date();
// make current time
newDate.setDate(newDate.getDate());
// setting date and time
$('#Date').html(dayNames[newDate.getDay()] + " " + newDate.getDate() + ' ' + monthNames[newDate.getMonth()] + ' ' + newDate.getFullYear());

setInterval( function() {
// Create a newDate() object and extract the seconds of the current time on the visitor's
var seconds = new Date().getSeconds();
// Add a leading zero to seconds value
$("#sec").html(( seconds < 10 ? "0" : "" ) + seconds);
},1000);

setInterval( function() {
// Create a newDate() object and extract the minutes of the current time on the visitor's
var minutes = new Date().getMinutes();
// Add a leading zero to the minutes value
$("#min").html(( minutes < 10 ? "0" : "" ) + minutes);
},1000);

setInterval( function() {
// Create a newDate() object and extract the hours of the current time on the visitor's
var hours = new Date().getHours();
// Add a leading zero to the hours value
$("#hours").html(( hours < 10 ? "0" : "" ) + hours);
}, 1000); 
});
</script>
<div class="clock">
<div id="Date"></div>
<ul>
<li id="hours"></li>
<li id="point">:</li>
<li id="min"></li>
<li id="point">:</li>
<li id="sec"></li>
</ul>
</div>


9

jQuery.now() Возвращает: Число

Описание: возвращает число, представляющее текущее время.

Этот метод не принимает никаких аргументов.

$.now()Метод является сокращением для количества возвращаемого выражения (new Date).getTime().

http://api.jquery.com/jQuery.now/

Использовать Javascript просто:

var d = new Date();
var time = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
console.log(time);

5

$ .now () jQuery - это псевдоним new Date (). getTime (), внутренней функции Javascript.

http://api.jquery.com/jquery.now/

Это возвращает количество секунд, прошедших с 1970 года, обычно называемое (не обязательно правильно) как Unix Time, Epoch или Timestamp, в зависимости от круга, в который вы попадаете. Это может быть действительно удобно для вычисления разницы между датами / временем с использованием простых математических расчетов. , Он не имеет информации о часовом поясе и всегда соответствует времени UTC.

http://en.wikipedia.org/wiki/Unix_time

Нет необходимости использовать jQuery, кроме этого псевдонима, он мало что помогает при манипулировании датой / временем.

Если вы ищете быстрый и грязный способ представления времени в тексте, объект Javascript Date имеет прототип «toString», который вернет дату и время в формате ISO.

new Date().toString();
//returns "Thu Apr 30 2015 14:37:36 GMT+0100 (BST)"

Однако более чем вероятно, что вы захотите настроить форматирование. Объект Date имеет возможность извлекать ваши соответствующие данные, чтобы вы могли построить собственное строковое представление.

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

var d = new Date(); //without params it defaults to "now"
var t = d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
//Will return 14:37:36

Однако, поскольку вы запросили решение jQuery - вполне вероятно, что вы работаете со старыми браузерами. Если вы хотите делать более конкретные вещи - особенно интерпретировать строки в объекты Date (полезно для ответов API), вы можете посмотреть Moment.js.

http://momentjs.com/

Это обеспечит кроссбраузерную совместимость и значительно улучшит форматирование без необходимости объединять множество строк вместе! Например:

moment().format('hh:mm:ss');
//Will return 14:37:36

4

Я использую момент для всех моих потребностей в манипуляциях / отображении (как на стороне клиента, так и на node.js, если вы его используете), если вам просто нужен простой формат, ответы выше подойдут, если вы ищете что-то более сложное, момент - это путь ИМО.


3
<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script>
    function ShowLocalDate()
    {
    var dNow = new Date();
    var localdate= (dNow.getMonth()+1) + '/' + dNow.getDate() + '/' + dNow.getFullYear() + ' ' + dNow.getHours() + ':' + dNow.getMinutes();
    $('#currentDate').text(localdate)
    }
</script>

</head>
<body>
    enter code here
    <h1>Get current local enter code here Date in JQuery</h1>
    <label id="currentDate">This is current local Date Time in JQuery</p>
    <button type="`enter code here button onclick="ShowLocalDate()">Show Local DateTime</button>

</body>
</html> 

вы можете получить дополнительную информацию по ссылке ниже

http://www.morgantechspace.com/2013/11/Get-current-Date-time-in-JQuery.html#GetLocalDateTimeinJQuery



1

Используя встроенные функции даты JavaScript, вы можете получать часы , минуты и секунды по своему усмотрению. Если вы хотите отформатировать дату и время определенным образом, вы можете реализовать метод, расширяющий прототип даты JavaScript.

Вот один из уже реализованных: https://github.com/jacwright/date.format


0

Для местного времени ISO8601для SQL TIMESTAMPвы можете попробовать:

var tzoffset = (new Date()).getTimezoneOffset() * 60000;
var localISOTime = (new Date(Date.now() - tzoffset))
  .toISOString()
  .slice(0, 19)
  .replace('T', ' ');
$('#mydatediv').val(localISOTime);



0

Последующий

function gettzdate(){
    var fd = moment().format('YYYY-MM-DDTHH:MM:ss');
    return fd ; 
}

работает для установки текущей даты на <input type="datetime-local">

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.