如何使用jQuery获取当前时间


129

以下返回以毫秒为单位的时间,例如4565212462。

alert( $.now() );

如何将其转换为人类可读的时间格式,例如 (hours:minutes:seconds)


1
你不需要的jQuery的$.now(),因为JavaScript有本地实现:stackoverflow.com/questions/20456712/...
乔什克罗泽

更正:(1)这已被本机Date.now()取代,并且(2)返回的时间以毫秒为单位,而不是微秒。
den232

Answers:


304

您可以这样尝试:

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
克里斯(Chris)

1
您还应该考虑将padStart包括在每个get中:dt.getMinutes()。toString.padStart(2,'0')这将确保数字保持2位长且填充零,并且遵循建议的javascript功能-非常漂亮未来校对:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
负零

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的转换getter之一将对象转换为字符串,例如:

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"

或者,如果您希望对其进行更多自定义,请参见的getter方法列表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)

..如果您想将时间格式化为hh-mm-ss:

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

1
您不需要为新的Date()提供参数,因为它默认为现在。
安德鲁·斯波德

1
@Spode啊,好点。我不确定为什么其他答案会使用jQuery。
Josh Crozier

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

jQuery的$ .now()是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格式的Date Time。

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

不过,您更有可能想要自定义格式。Date对象可以提取您的相关详细信息,因此您可以构建自己的字符串表示形式。

https://developer.mozilla.org/zh-CN/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(如果使用的话)),如果您只需要简单的格式,上面的答案就可以了,如果您正在寻找更复杂的东西,时刻是IMO走的路。


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

尝试

console.log(
  new Date().toLocaleString().slice(9, -3)
  , new Date().toString().slice(16, -15)
);



0

对于ISO8601SQL的本地时间,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">

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.