ฉันจะรับวันที่ปัจจุบันใน JavaScript ได้อย่างไร
new Date()
ผลตอบแทนในปัจจุบันเวลาไม่ปัจจุบันวัน ความแตกต่างนั้นสำคัญหากคุณพยายามเปรียบเทียบกับวันที่อื่นซึ่งไม่มีองค์ประกอบเวลา (เช่นคือตอนเที่ยงคืน)
ฉันจะรับวันที่ปัจจุบันใน JavaScript ได้อย่างไร
new Date()
ผลตอบแทนในปัจจุบันเวลาไม่ปัจจุบันวัน ความแตกต่างนั้นสำคัญหากคุณพยายามเปรียบเทียบกับวันที่อื่นซึ่งไม่มีองค์ประกอบเวลา (เช่นคือตอนเที่ยงคืน)
คำตอบ:
ใช้new Date()
เพื่อสร้างDate
วัตถุใหม่ที่มีวันที่และเวลาปัจจุบัน
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
today = mm + '/' + dd + '/' + yyyy;
document.write(today);
สิ่งนี้จะให้วันที่ของคุณวันนี้ในรูปแบบของ mm / dd / yyyy
เพียงเปลี่ยนtoday = mm +'/'+ dd +'/'+ yyyy;
เป็นรูปแบบที่คุณต้องการ
01
, 02
, ... ,09
Date.prototype.toLocaleDateString()
วิธีการใหม่นี้เป็นทางออกที่ยืดหยุ่นกว่า มันเป็นส่วนหนึ่งของ JavaScript ตั้งแต่ ECMAScript 5.1 และได้รับการสนับสนุนอย่างดีจากเบราว์เซอร์ที่เขียวตลอดเวลา MDN:toLocaleDateString()
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
ใช้replace
ตัวเลือกหากคุณจะนำutc
ตัวแปรมาใช้ใหม่เช่นnew Date(utc)
Firefox และ Safari จะไม่จดจำวันที่ที่มีเครื่องหมายขีดกลาง
toUTCString()
ส่งคืนเป็น utc datetime
moment( new Date().toJSON().slice(0, 10) )
การปรับปรุง! , เลื่อนลง
หากคุณต้องการบางสิ่งที่เรียบง่ายสำหรับผู้ใช้ ... Also, fixed a small suffix issue in the first version below. Now properly returns suffix.
var objToday = new Date(),
weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'),
dayOfWeek = weekday[objToday.getDay()],
domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(),
dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder,
months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'),
curMonth = months[objToday.getMonth()],
curYear = objToday.getFullYear(),
curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()),
curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(),
curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(),
curMeridiem = objToday.getHours() > 12 ? "PM" : "AM";
var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear;
document.getElementsByTagName('h1')[0].textContent = today;
<h1></h1>
UBBER UPDATEหลังจากการผัดวันประกันพรุ่งมากมายในที่สุดฉันก็ได้GitHubbedและอัปเดตสิ่งนี้ด้วยโซลูชั่นสุดท้ายที่ฉันใช้เพื่อตัวเอง แม้จะมีการแก้ไขในนาทีสุดท้ายเพื่อทำให้หวานขึ้น! หากคุณกำลังมองหาเก่าjsFiddle โปรดดูที่
การอัปเดตนี้มี2รสชาติ แต่ก็ยังค่อนข้างเล็กแม้ว่าจะไม่เล็กเท่าคำตอบดั้งเดิมของฉัน ถ้าคุณต้องการขนาดเล็กมากไปด้วย
หมายเหตุเพิ่มเติม: นี่ยังคงป่องน้อยกว่า moment.js ในขณะที่ moment.js เป็นสิ่งที่ดี imo มันมีวิธีการทางโลกมากเกินไปซึ่งต้องใช้เวลาในการเรียนรู้ราวกับว่ามันเป็นภาษา เหมืองแร่ที่นี่ใช้รูปแบบเดียวกับที่พบบ่อยPHP: วัน
Flavour 1
new Date().format(String)
Fav ส่วนตัวของฉัน ฉันรู้ว่าข้อห้าม แต่ใช้ได้ดีกับ Date Object เพิ่งทราบถึงการดัดแปลงอื่น ๆ ที่คุณอาจต้องใช้กับวัตถุวันที่
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Flavor 2
dateFormat(Date, String)
วิธี All-in-one แบบดั้งเดิม มีความสามารถทั้งหมดของก่อนหน้านี้ แต่ถูกเรียกผ่านวิธีการที่มีพารามิเตอร์วันที่
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
โบนัสรส (ต้อง jQuery)
$.date(Date, String)
นี้มีมากกว่าformat
ตัวเลือกง่าย ๆaddDays
มันยาวยืดวัตถุฐานวันและรวมถึงวิธีการเช่น สำหรับข้อมูลเพิ่มเติมโปรดดูGit
ในสมัยนี้ตัวอักษรรูปแบบที่มีแรงบันดาลใจจากPHP: วัน สำหรับรายการที่สมบูรณ์โปรดดูREADMEของฉัน
mod นี้ยังมีรายการรูปแบบที่ทำไว้ล่วงหน้าอีกต่อไป หากต้องการใช้รูปแบบ premade เพียงป้อนชื่อคีย์dateFormat(new Date(), 'pretty-a');
ตามที่คุณอาจสังเกตเห็นคุณสามารถใช้สองครั้ง\
เพื่อหนีอักขระ
ที่สั้นที่สุด
วิธีรับรูปแบบเช่น "2018-08-03":
let today = new Date().toISOString().slice(0, 10)
console.log(today)
วิธีรับรูปแบบเช่น "8/3/2561":
let today = new Date().toLocaleDateString()
console.log(today)
นอกจากนี้คุณยังสามารถส่งผ่านโลแคลเป็นอาร์กิวเมนต์ได้toLocaleDateString("sr")
เป็นต้น
หากคุณต้องการวันที่ไม่มีข้อมูลให้ใช้:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
ลองสิ่งนี้:
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
ผลลัพธ์จะเป็นเช่นไร
15/2/2012
หากคุณกำลังมองหาการควบคุมที่ละเอียดยิ่งขึ้นสำหรับรูปแบบวันที่ที่ละเอียดยิ่งขึ้น ห้องสมุดที่ยอดเยี่ยม - และเพียง 5KB http://momentjs.com/
คุณสามารถใช้ moment.js: http://momentjs.com/
var m = moment().format("DD/MM/YYYY");
document.write(m);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
moment().format("L")
เพื่อเคารพสถานที่ปัจจุบัน
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
ในการแยกมันออกเป็นขั้นตอน:
(new Date()).toString()
ให้ "ศุกร์ 28 มิถุนายน 2013 15:30:18 GMT-0700 (PDT)"
(new Date()).toString().split(' ')
หารสตริงข้างต้นในแต่ละช่องว่างและส่งกลับอาร์เรย์ดังนี้: "" Fri "," Jun "," 28 "," 2013 "," 15:31:14 "," GMT-0700 "," (PDT) " ]
(new Date()).toString().split(' ').splice(1,3).join(' ')
รับค่าที่สองที่สามและที่สี่จากอาร์เรย์ด้านบนรวมกับช่องว่างและส่งคืนสตริง "Jun 28 2013"
Date().split(' ').splice(1,3).join(' ')
ใช้ได้ทุกครั้ง:
var now = new Date();
var day = ("0" + now.getDate()).slice(-2);
var month = ("0" + (now.getMonth() + 1)).slice(-2);
var today = now.getFullYear() + "-" + (month) + "-" + (day);
console.log(today);
var date = new Date().toLocaleDateString("en-US");
นอกจากนี้คุณยังสามารถเรียกใช้เมธอดtoLocaleDateString
ด้วยพารามิเตอร์สองตัว:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
new Date().toLocaleDateString("de-de")
ไม่หลอกลวงสำหรับฉัน
Cleaner, เวอร์ชั่นที่ง่ายกว่า:
new Date().toLocaleString();
ผลลัพธ์จะแตกต่างกันไปตามตำแหน่งที่ตั้งของผู้ใช้:
2/27/2017, 9:15:41 AM
หากคุณพอใจกับรูปแบบ YYYY-MM-DD สิ่งนี้จะทำงานเช่นกัน
new Date().toISOString().split('T')[0]
2018-03-10
คุณสามารถใช้ห้องสมุดDate.jsซึ่งขยายวัตถุวันที่ดังนั้นคุณสามารถมี. วันนี้ () วิธีการ
คุณสามารถเรียกวันที่ปัจจุบันด้วยวิธีสแตติกได้ดังนี้:
var now = Date.now()
อ้างอิง:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
var dtToday = new Date(date.now);
คำตอบของวรุณไม่บัญชีสำหรับTimezoneOffset นี่คือรุ่นที่ทำ:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
เป็นนาทีในขณะที่คอนสตรัควันที่ใช้เวลามิลลิวินาทีจึงคูณด้วยTimezoneOffset
60000
คำตอบที่สั้นที่สุดคือ: new Date().toJSON().slice(0,10)
new Date().toDateString();
ผลลัพธ์:
"พุธ 3 กุมภาพันธ์ 2016"
ตามที่toISOString()
จะส่งคืนเวลา UTC ปัจจุบันไม่ใช่เวลาท้องถิ่น เราต้องสร้างวันที่โดยใช้ฟังก์ชั่น '.toString ()' เพื่อรับวันที่ในyyyy-MM-dd
รูปแบบเช่น
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
เพื่อรับวันที่และเวลาในyyyy-MM-ddTHH:mm:ss
รูปแบบ
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
เพื่อรับวันที่และเวลาในyyyy-MM-dd HH:mm:ss
รูปแบบ
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
หากคุณต้องการDD/MM/YYYY
รูปแบบที่เรียบง่ายฉันเพิ่งคิดวิธีแก้ปัญหาแบบง่าย ๆ แม้ว่ามันจะไม่นำหน้าศูนย์ที่หายไป
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
new Date().toISOString().slice(0,10);
ก็จะทำงานเช่นกัน
แก้ไขล่าสุด: 8/23/19 วัน FNSห้องสมุดทำงานเหมือนmoment.jsแต่มีรอยเท้า WAY ที่มีขนาดเล็ก มันช่วยให้คุณสามารถเลือกฟังก์ชั่นที่คุณต้องการรวมไว้ในโครงการของคุณเพื่อที่คุณจะได้ไม่ต้องคอมไพล์ไลบรารีทั้งหมดเพื่อจัดรูปแบบวันที่วันนี้ หาก lib บุคคลที่สามน้อยที่สุดไม่ใช่ตัวเลือกสำหรับโครงการของคุณฉันรับรองโซลูชันที่ได้รับการยอมรับโดย Samuel Meddows ขึ้นไปด้านบน
รักษาประวัติไว้ด้านล่างเพราะช่วยคนไม่กี่คน แต่สำหรับการบันทึกมันค่อนข้างแฮ็คและมีแนวโน้มที่จะทำลายโดยไม่มีการเตือนเช่นเดียวกับโซลูชั่นส่วนใหญ่ในโพสต์นี้
แก้ไข 2/7/2017 โซลูชัน JS แบบบรรทัดเดียว:
tl; dr
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
edge, ff ล่าสุด, & chrome returntodaysDate = "2/7/2017"
"works" * ใน IE10 +
คำอธิบาย
ฉันพบว่า IE10 และ IE Edge ทำสิ่งต่างกันเล็กน้อย .. ไปดู ด้วยnew Date(Date.now()).toLocaleString()
เป็นอินพุต
ผลตอบแทน IE10:
"Tuesday, February 07, 2017 2:58:25 PM"
ฉันสามารถเขียนฟังก์ชันยาวขนาดใหญ่และ FTFY แต่คุณควรใช้moment.jsสำหรับสิ่งนี้จริงๆ สคริปต์ของฉันทำความสะอาดสิ่งนี้และมอบสัญกรณ์สหรัฐฯแบบดั้งเดิมที่ขยายให้คุณ:> todaysDate = "March 06, 2017"
IE EDGE ส่งคืน:
"2/7/2017 2:59:27 PM"
แน่นอนว่ามันไม่ง่ายเลย สตริงวันที่ของ Edge มีอักขระ "•" ที่มองไม่เห็นระหว่างอักขระแต่ละตัวที่มองเห็นได้ ดังนั้นตอนนี้เราจะไม่เพียงตรวจสอบว่าตัวละครตัวแรกเป็นตัวเลข แต่ตัวอักษร 3 ตัวแรกเนื่องจากปรากฎว่าตัวอักษรตัวใดตัวหนึ่งในช่วงวันที่ทั้งหมดจะเป็นจุดหรือเครื่องหมายทับในบางจุด ดังนั้นเพื่อให้เรื่องง่าย ๆ เพียง. slice ()สามตัวแรก (บัฟเฟอร์เล็ก ๆ กับ shenanigans ในอนาคต) แล้วตรวจสอบตัวเลข ควรสังเกตว่าจุดที่มองไม่เห็นเหล่านี้อาจยังคงอยู่ในรหัสของคุณ ฉันอาจจะขุดลงไปว่าถ้าคุณมีแผนใหญ่กว่าเพียงแค่พิมพ์สายนี้ในมุมมองของคุณ
∴อัพเดทหนึ่งซับ:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
ที่ดูดไปอ่าน เกี่ยวกับ:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
คำตอบเดิม
ฉันมีหนึ่งซับสำหรับคุณ:
new Date(Date.now()).toLocaleString().split(', ')[0];
และ[1]
จะให้เวลาของวันกับคุณ
คุณสามารถใช้สิ่งนี้
<script>
function my_curr_date() {
var currentDate = new Date()
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var my_date = month+"-"+day+"-"+year;
document.getElementById("dateField").value=my_date;
}
</script>
HTML คือ
<body onload='return my_curr_date();'>
<input type='text' name='dateField' id='dateField' value='' />
</body>
หากคุณใช้ jQuery ลองซับอันนี้:
$.datepicker.formatDate('dd/mm/yy', new Date());
นี่คือการประชุมสำหรับการจัดรูปแบบวันที่
นี่คือการอ้างอิงสำหรับ jQuery datepicker
วิธีดึงออกที่ตรงไปตรงมา (ในขณะที่พิจารณาเขตเวลาปัจจุบันของคุณการใช้ประโยชน์จากรูปแบบ ISO yyyy-mm-dd) คือ:
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
โดยปกติแล้วนี่เป็นรูปแบบวันที่ที่เข้ากันได้และสามารถแปลงเป็นค่าวันที่ได้ตามต้องการหากต้องการ:
Date.parse(d); // 1582044297000
คุณสามารถชำระเงินนี้
var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);
และดูเอกสารประกอบสำหรับตัวสร้าง Date () ลิงค์
เป็นเรื่องใหญ่อะไรกับเรื่องนี้ .. วิธีที่สะอาดที่สุดในการทำเช่นนี้คือ
var currentDate=new Date().toLocaleString().slice(0,10);
3/4/2018,
new Date().toJSON().slice(0,10)
.slice(0,10)
สิ่งนี้อาจช่วยคุณได้
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
สิ่งนี้จะพิมพ์วันที่ปัจจุบันในรูปแบบ dd / MM / yyyy
นี่เป็นการดีที่จะได้รับการจัดรูปแบบวันที่
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
ฉันคิดว่านี่เป็นคำถามเก่า แต่วิธีที่ง่ายที่สุดจะเป็นดังนี้:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
สิ่งนี้จะคว้าเวลาปัจจุบันส่งผ่านไปยังสตริงตามตำแหน่งและจากนั้นคุณสามารถเรียกใช้ฟังก์ชัน CurrentTime เพื่อแสดงเวลา สำหรับฉันแล้วนี่เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการรับเวลาสำหรับบางสิ่ง
var currentTime = new Date();