วิธีรับเวลาปัจจุบันด้วย jQuery


129

ต่อไปนี้ส่งคืนเวลาเป็นไมโครวินาทีตัวอย่างเช่น 4565212462

alert( $.now() );

ฉันจะแปลงเป็นรูปแบบเวลาที่มนุษย์อ่านได้เช่น (ชั่วโมง: นาที: วินาที) ได้อย่างไร


1
คุณไม่จำเป็นต้องใช้ jQuery $.now()เนื่องจาก JavaScript มีการใช้งานแบบเนทีฟ: stackoverflow.com/questions/20456712/…
Josh Crozier

การแก้ไข: (1) สิ่งนี้ถูกแทนที่ด้วย Date.now () ดั้งเดิมและ (2) เวลาที่ส่งคืนเป็นมิลลิวินาทีไม่ใช่ไมโครวินาที
den232

คำตอบ:


304

คุณอาจลองทำดังนี้

new Date($.now());

นอกจากนี้การใช้ Javascript คุณสามารถทำได้ดังนี้:

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


7
โปรดทราบว่า. getHours () ส่งคืนชั่วโมงในเขตเวลาของเครื่องท้องถิ่น หากผู้ใช้มีเบราว์เซอร์ในเขตเวลาอื่นที่ไม่ใช่คุณผู้ใช้จะได้รับผลลัพธ์อื่น ๆ จาก getHours สิ่งนี้ถือเป็นจริงสำหรับเมธอด. toString () การควบคุมเขตเวลาในจาวาสคริปต์เป็นเรื่องยุ่งยาก (คุณต้องคำนวณค่าชดเชยระหว่างเขตเวลาของคุณกับเขตเวลาที่ต้องการและแก้ไขวันที่ให้สอดคล้องกัน) ดังที่กล่าวไว้ในคำตอบอื่นการใช้ moment.js ดูเหมือนจะเป็นความคิดที่ดี momentjs.com
คริส

1
คุณควรพิจารณารวม padStart ให้กับแต่ละ get: dt.getMinutes (). toString.padStart (2, '0') เพื่อให้แน่ใจว่าตัวเลขจะยังคงมีความยาว 2 หลักโดยมีศูนย์ที่มีเบาะรองอยู่และเป็นไปตามฟังก์ชันจาวาสคริปต์ที่เสนอ - สวยมาก พิสูจน์แล้วในอนาคต: 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วิธีการ getterของ


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 () ใหม่เนื่องจากเป็นค่าเริ่มต้นในขณะนี้
Andrew Spode

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() ผลตอบแทน: Number

คำอธิบาย: ส่งกลับตัวเลขที่แสดงเวลาปัจจุบัน

วิธีนี้ไม่ยอมรับข้อโต้แย้งใด ๆ

วิธีการจดชวเลขจำนวนที่ส่งกลับโดยการแสดงออกที่$.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 เป็นนามแฝงของ Date () ใหม่ getTime () ซึ่งเป็นฟังก์ชัน Javascript ภายใน

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

สิ่งนี้จะคืนค่าจำนวนวินาทีที่ผ่านไปนับตั้งแต่ปี 1970 ซึ่งมักเรียกกันทั่วไปว่า (ไม่จำเป็นต้องถูกต้อง) เป็นเวลา Unix, Epoch หรือ Timestamp ขึ้นอยู่กับแวดวงที่คุณอยู่มันมีประโยชน์มากสำหรับการคำนวณความแตกต่างระหว่างวันที่ / เวลาโดยใช้คณิตศาสตร์ง่ายๆ . ไม่มีข้อมูล TimeZone และเป็น 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 หากคุณใช้) หากคุณต้องการเพียงแค่รูปแบบง่ายๆคำตอบข้างต้นจะทำหากคุณกำลังมองหาสิ่งที่ซับซ้อนกว่านี้เล็กน้อย ช่วงเวลาคือหนทางที่จะไป 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

ฟังก์ชั่นการใช้งานจาวาสคริปต์วันพื้นเมืองของคุณจะได้รับชั่วโมง , นาทีและวินาทีตามที่คุณต้องการ หากคุณต้องการจัดรูปแบบวันที่และเวลาโดยเฉพาะคุณอาจต้องการใช้วิธีการขยาย JavaScript Date ต้นแบบ

นี่คือสิ่งที่นำไปใช้แล้ว: https://github.com/jacwright/date.format


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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.