ฉันจะรับเวลาปัจจุบันใน JavaScript และใช้ในการจับเวลาได้อย่างไร
ฉันลองvar x = Date()
แล้วได้:
อังคาร 15 พฤษภาคม 2012 05:45:40 GMT-0500
แต่ฉันต้องการเวลาปัจจุบันเท่านั้นตัวอย่างเช่น 05:45
ฉันจะกำหนดสิ่งนี้ให้กับตัวแปรได้อย่างไร
ฉันจะรับเวลาปัจจุบันใน JavaScript และใช้ในการจับเวลาได้อย่างไร
ฉันลองvar x = Date()
แล้วได้:
อังคาร 15 พฤษภาคม 2012 05:45:40 GMT-0500
แต่ฉันต้องการเวลาปัจจุบันเท่านั้นตัวอย่างเช่น 05:45
ฉันจะกำหนดสิ่งนี้ให้กับตัวแปรได้อย่างไร
คำตอบ:
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
T
แล้วดังนั้นตอนนี้จึงเป็น iso สากลที่ถูกต้อง BTW ฉันเห็นundefined
ใน IE เท่านั้น คงอยู่แล้ว
สั้นและง่าย:
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 == 1,000):
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
ฉันไม่พบวิธีแก้ปัญหาที่ทำในสิ่งที่ฉันต้องการ ฉันต้องการโค้ดที่สะอาดและเล็ก ๆ ดังนั้นฉันจึงได้:
(ตั้งหนึ่งครั้งใน master.js ของคุณและเรียกใช้เมื่อจำเป็น)
จาวาสคริปต์บริสุทธิ์
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" />
UPDATE
ขณะนี้มีการสนับสนุนเบราว์เซอร์เพียงพอที่จะใช้: 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" />
new Date().toLocaleTimeString('fr', {hour: '2-digit', minute:'2-digit'});
ลอง
new Date().toLocaleTimeString().replace("/.*(\d{2}:\d{2}:\d{2}).*/", "$1");
หรือ
new Date().toTimeString().split(" ")[0];
คุณหมายถึง:
var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();
const date = Date().slice(16,21);
console.log(date);
ลองสิ่งนี้:
var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();
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;
}
ดูวิธีการวันที่เหล่านี้ ...
วิธีนี้คุณสามารถทำได้
const date = new Date();
const time = date.toTimeString().split(' ')[0].split(':');
console.log(time[0] + ':' + time[1])
new Date().toTimeString().slice(0, 5)
หรือดีกว่าน้อย
นี้ -
var x = new Date();
var h = x.getHours();
var m = x.getMinutes();
var s = x.getSeconds();
ดังนั้น-
x = date
h = hours
m = mins
s = seconds
คุณสามารถใช้วิธีนี้
console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit", hour12: false }));
console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit" }));
นี่เป็นวิธีที่สั้นที่สุด
var now = new Date().toLocaleTimeString();
console.log(now)
นี่คือวิธีผ่านการจัดการสตริงที่ไม่ได้กล่าวถึง
var now = new Date()
console.log(now.toString().substr(16,8))
Date().substr(16, 5)
ที่สั้นที่สุดคือ toString()
คุณไม่จำเป็นต้อง
กำหนดให้กับตัวแปรและแสดงมัน
time = new Date();
var hh = time.getHours();
var mm = time.getMinutes();
var ss = time.getSeconds()
document.getElementById("time").value = hh + ":" + mm + ":" + ss;
time
องค์ประกอบ OP ขอเก็บไว้ในตัวแปรและเฉพาะชั่วโมงและนาที let time = Date().substr(16, 5)
ทำอย่างนั้น
ฟังก์ชั่นง่าย ๆ เพื่อแยกวันที่และเวลาและรูปแบบที่เข้ากันได้กับอินพุต 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
}
var today = new Date(); //gets current date and time
var hour = today.getHours();
var minute = today.getMinutes();
var second = today.getSeconds();
new
ปัญหาหลักที่เป็นตัวตนของ
นี้ทำงานสำหรับฉัน แต่นี้ขึ้นอยู่กับสิ่งที่คุณได้รับเมื่อคุณตีDate()
:
Date().slice(16,-12)
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;