ฉันจะรับวันที่ปัจจุบันใน JavaScript ได้อย่างไร


2308

ฉันจะรับวันที่ปัจจุบันใน JavaScript ได้อย่างไร


383
var currentTime = new Date();
Hendrik

11
ดูเอกสารสำหรับวัตถุวัน มันมีตัวอย่าง
Quentin

5
สิ่งนี้จะช่วยให้คุณtizag.com/javascriptT/javascriptdate.php

24
new Date()ผลตอบแทนในปัจจุบันเวลาไม่ปัจจุบันวัน ความแตกต่างนั้นสำคัญหากคุณพยายามเปรียบเทียบกับวันที่อื่นซึ่งไม่มีองค์ประกอบเวลา (เช่นคือตอนเที่ยงคืน)
Steve Bennett

11
ใช้ momentJs, lib นี้เป็นทองคำสำหรับนักพัฒนา
RBoschini

คำตอบ:


2717

ใช้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;เป็นรูปแบบที่คุณต้องการ


7
ขอบคุณสำหรับรหัส .. แต่สิ่งที่ฉันยังไม่ได้รับมันคือเส้นถ้า (dd <10) {dd = '0' + dd}} ... ทำไม <10? จากสิ่งที่ฉันเข้าใจจากรหัสคือถ้าตัวละครของวันน้อยกว่า 2 เพียงเพิ่ม 0 ก่อนหน้านี้ .. แต่ทำไม 10?
imin

20
@imin เพราะน้อยกว่า 2 ตัวอักษรหมายถึงตัวละคร 1 ... และทุกอย่างภายใต้ 10 (1-9) เป็นตัวละครที่ 1 ดังนั้นเราจะมี01, 02, ... ,09
zfm

11
@MounaCheikhna - เราจะเป็นอย่างไรในปี 999?
nnnnnn

21
สลับรอบเดือนและวันที่หากคุณไม่ได้อยู่ในอเมริกาเหนือ
Mark Micallef

3
Date.prototype.toLocaleDateString()วิธีการใหม่นี้เป็นทางออกที่ยืดหยุ่นกว่า มันเป็นส่วนหนึ่งของ JavaScript ตั้งแต่ ECMAScript 5.1 และได้รับการสนับสนุนอย่างดีจากเบราว์เซอร์ที่เขียวตลอดเวลา MDN:toLocaleDateString()
อดัมบราวน์

443

var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);

ใช้replaceตัวเลือกหากคุณจะนำutcตัวแปรมาใช้ใหม่เช่นnew Date(utc)Firefox และ Safari จะไม่จดจำวันที่ที่มีเครื่องหมายขีดกลาง


6
ฉันไม่คิดอย่างนั้น :) ดูเหมือนว่าจะตรงไปตรงมา!
Varun Natraaj

6
toJSON () ส่งคืนเป็น utc datetime
Andy N

1
มันจะส่งคืน datetime ของ JSON toUTCString()ส่งคืนเป็น utc datetime
Varun Natraaj

25
ไม่พิจารณา TimezoneOffset ในช่วงเวลาของการทดสอบของฉันฉันกำลังมองหา "ตอนนี้" และฉันได้ "เมื่อวาน" stackoverflow.com/questions/13646446/…
mickmackusa

7
สมบูรณ์ นี่เป็นวิธีที่สะอาดที่สุดในการทำสิ่งนี้ที่ฉันเห็นอยู่ที่นี่ ทำงานได้ดีใน MomentJS สำหรับ "วันนี้ไม่ใช่ตอนนี้"moment( new Date().toJSON().slice(0, 10) )
Kyle Hotchkiss

234

การปรับปรุง! , เลื่อนลง

หากคุณต้องการบางสิ่งที่เรียบง่ายสำหรับผู้ใช้ ... 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 1new 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 2dateFormat(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');

  • 'สาร'
    • 'commonLogFormat' == 'd / M / Y: G: i: s'
    • 'exif' == 'Y: m: d G: i: s'
    • 'isoYearWeek' == 'Y \\ WW'
    • 'isoYearWeek2' == 'Y - \\ WW'
    • 'isoYearWeekDay' == 'Y \\ WWj'
    • 'isoYearWeekDay2' == 'Y - \\ WW-j'
    • 'mySQL' == 'Ymd h: i: s'
    • 'postgreSQL' == 'Yz'
    • 'postgreSQL2' == 'Yz'
    • 'soap' == 'Ymd \\ TH: i: su'
    • 'soap2' == 'Ymd \\ TH: i: s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Ynj \\ TG: i: s'
  • 'คงที่'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm / d / Y'
    • 'AMERICANSHORTWTIME' '==' m / d / Y h: i: sA '
    • 'ATOM' == 'Ymd \\ TH: i: sP'
    • 'COOKIE' == 'l dMY H: i: s T'
    • 'EUROPEAN' == 'j FY'
    • 'EUROPEANSHORT' == 'dmY'
    • 'EUROPEANSHORTWTIME' '=m' dmY H: i: s '
    • 'ISO8601' == 'Ymd \\ TH: i: sO'
    • 'LEGAL' == 'j FY'
    • 'RFC822' == 'D d M y H: i: s O'
    • 'RFC850' == 'l dMy H: i: s T'
    • 'RFC1036' == 'D d M y H: i: s O'
    • 'RFC1123' == 'D MYH: i: s O'
    • 'RFC2822' == 'D MYH: i: s O'
    • 'RFC3339' == 'Ymd \\ TH: i: sP'
    • 'RSS' == 'D MYH: i: s O'
    • 'W3C' == 'Ymd \\ TH: i: sP'
  • 'น่ารัก'
    • 'pretty-a' == 'g: i.sA l jS \\ o \\ f FY'
    • 'pretty-b' == 'g: iA l jS \\ o \\ f FY'
    • 'pretty-c' == 'n / d / Y g: iA'
    • 'pretty-d' == 'n / d / Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'pretty-f' == 'g: iA'

ตามที่คุณอาจสังเกตเห็นคุณสามารถใช้สองครั้ง\เพื่อหนีอักขระ



14
@ KamranAhmed เกือบ 2 ปีและ 40 คะแนนต่อมาฉันจะบอกว่าความพยายามมันคุ้มค่า ฮ่า ๆ. ฉันได้ขยายคลาสนี้เป็นจำนวนมากโดยส่วนตัวแล้ว แต่ยังไม่ได้อัปโหลดเนื่องจากฉันคิดว่าคนส่วนใหญ่จะใช้ปลั๊กอินวันที่ js อื่น ๆ ที่ฉันเห็นแนะนำ แต่ฉันเดาว่าฉันควรทำให้เป็น "สาธารณะ" มากกว่าและเพิ่มที่นี่
SpYk3HH

14
ขณะนี้เป็นสิ่งที่คุณจะใช้ในวันนี้
Christian Stewart

1
ด้านบนมีคำที่พิมพ์ผิด (ที่พาฉันไปสักพักหนึ่ง) มันใช้ตัวแปร "วันนี้" ในบรรทัด: "dayOfMonth = วันนี้ +"
1435707

"today + (objToday.getDate () <10)? '0' + objToday.getDate () + domEnder: objToday.getDate () + domEnder" - JS เป็นภาษาที่โง่
อเล็กซ์ S

211

ที่สั้นที่สุด

วิธีรับรูปแบบเช่น "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")เป็นต้น


3
สิ่งนี้ยังคงล้มเหลวเนื่องจากการเปลี่ยนเขตเวลา
LStarky

7
ทำไมนี่ไม่ใช่คำตอบที่ได้รับการยอมรับง่ายที่สุดและใช้ในฟังก์ชั่น
lifesoordinary

171

หากคุณต้องการวันที่ไม่มีข้อมูลให้ใช้:

var today = new Date();
    today.setHours(0, 0, 0, 0);

document.write(today);


40
นี่เป็นคำตอบเดียวที่ตอบคำถามได้จริง ทุกคนตอบคำถามเกี่ยวกับวิธีจัดรูปแบบวันที่เป็นสตริง
Inrego

1
ฉันเห็นด้วย. ที่จริงฉันอยากเขียนคำตอบที่คล้ายกับอันนี้จากนั้นมีหน้าต่างเล็ก ๆ โผล่ขึ้นมาถามฉันว่าฉันได้อ่านคำตอบทั้งหมดหรือไม่ เนื่องจากฉันได้อ่านเฉพาะคำตอบที่ดีที่สุดฉันตัดสินใจที่จะตรวจสอบว่ามีคำตอบที่ถูกต้องหรือไม่และนี่เป็นคำตอบแรกที่ถูกต้อง
Lajos Arpad

ชุดนี้ใช้เวลาหลายชั่วโมงโดยใช้ UTC ซึ่งอาจไม่สามารถใช้ได้กับทุกกรณี
แมคเคย์

103

ลองสิ่งนี้:

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

67

หากคุณกำลังมองหาการควบคุมที่ละเอียดยิ่งขึ้นสำหรับรูปแบบวันที่ที่ละเอียดยิ่งขึ้น ห้องสมุดที่ยอดเยี่ยม - และเพียง 5KB http://momentjs.com/


7
รองรับการแปลอย่างมีเสน่ห์
Risadinha

วันนี้เราใช้ date-fns - มันถือว่าเป็นวันที่ไม่เปลี่ยนรูป (ช่วงเวลากลายพันธุ์วันที่) ได้เร็วขึ้นและเป็นแบบแยกส่วน (เพียงนำเข้าสิ่งที่คุณต้องการ)
Freewalker

2
หกปีหลังจากโพสต์ช่วงเวลานี้น้ำหนักเพิ่มขึ้นเล็กน้อย คุณอาจต้องการดูgithub.com/iamkun/dayjsแทน - ฉันเคยอธิบายให้ฉันฟังว่า "momentjs on a diet" API ง่าย ๆ
benjamin.keen

55

คุณสามารถใช้ 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>


30
ช่วงเวลานั้น overkill เพียงแค่รับวันที่ปัจจุบัน
Dan Dascalescu

หรือmoment().format("L")เพื่อเคารพสถานที่ปัจจุบัน
Dunc

@DanDascalescu จริงๆแล้วข้อมูลจำเพาะฐาน Javascript สำหรับ DateTime นั้นแย่มาก
ทอดด์

หากคุณมีการนำเข้าโมเมนเจ็ตในโครงการของคุณอยู่แล้วนี่เป็นคำตอบที่ง่ายที่สุด
Adil H. Raza

52

var d = (new Date()).toString().split(' ').splice(1,3).join(' ');

document.write(d)

ในการแยกมันออกเป็นขั้นตอน:

  1. (new Date()).toString() ให้ "ศุกร์ 28 มิถุนายน 2013 15:30:18 GMT-0700 (PDT)"

  2. (new Date()).toString().split(' ') หารสตริงข้างต้นในแต่ละช่องว่างและส่งกลับอาร์เรย์ดังนี้: "" Fri "," Jun "," 28 "," 2013 "," 15:31:14 "," GMT-0700 "," (PDT) " ]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') รับค่าที่สองที่สามและที่สี่จากอาร์เรย์ด้านบนรวมกับช่องว่างและส่งคืนสตริง "Jun 28 2013"


2
ฉันต้องการเวลาใน 00:00:00 และไม่ต้องการสร้างใหม่ด้วยตนเอง ขั้นตอนที่ 2 ทำให้ฉันอยู่ที่นั่นอย่างสมบูรณ์แบบ รุ่งโรจน์!
panhandel

3
คุณสามารถบันทึกไบต์ได้โดยทำสิ่งนี้:Date().split(' ').splice(1,3).join(' ')
ไฮด์


45
var date = new Date().toLocaleDateString("en-US");

นอกจากนี้คุณยังสามารถเรียกใช้เมธอดtoLocaleDateStringด้วยพารามิเตอร์สองตัว:

var date = new Date().toLocaleDateString("en-US", {
    "year": "numeric",
    "month": "numeric"
});

บทความเกี่ยวกับMSDN เพิ่มเติมเกี่ยวกับวิธีการนี้ในMDN


เยี่ยมมากใช้งานได้บน Chrome น่าเสียดายที่ไม่สามารถใช้งาน PhantomJS ตั้งแต่วันที่ 22/4/2559
chris

วิธีแก้ปัญหาเย็น ควรอยู่ด้านบน new Date().toLocaleDateString("de-de")ไม่หลอกลวงสำหรับฉัน
user3772108

29

Cleaner, เวอร์ชั่นที่ง่ายกว่า:

new Date().toLocaleString();

ผลลัพธ์จะแตกต่างกันไปตามตำแหน่งที่ตั้งของผู้ใช้:

2/27/2017, 9:15:41 AM


27

หากคุณพอใจกับรูปแบบ YYYY-MM-DD สิ่งนี้จะทำงานเช่นกัน

new Date().toISOString().split('T')[0]

2018-03-10


เนื่องจากความยาวได้รับการแก้ไขเสมอเราจึงสามารถใช้สตริงย่อยได้เช่นกัน ใหม่ Date (). toISOString (). substring (0, 10); อาจจะเร็วขึ้นเล็กน้อยเช่นกัน
Mika Karjunen

23

คุณสามารถใช้ห้องสมุดDate.jsซึ่งขยายวัตถุวันที่ดังนั้นคุณสามารถมี. วันนี้ () วิธีการ


11
หากคุณใช้ jquery ui กับ datepicker คุณสามารถใช้ $ .datepicker.formatDate ('yy / mm / dd', Date ใหม่ ())
Peter Munnings


16

คำตอบของวรุณไม่บัญชีสำหรับTimezoneOffset นี่คือรุ่นที่ทำ:

var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11

เป็นนาทีในขณะที่คอนสตรัควันที่ใช้เวลามิลลิวินาทีจึงคูณด้วยTimezoneOffset60000




11

ตามที่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',' '));


10

หากคุณต้องการDD/MM/YYYYรูปแบบที่เรียบง่ายฉันเพิ่งคิดวิธีแก้ปัญหาแบบง่าย ๆ แม้ว่ามันจะไม่นำหน้าศูนย์ที่หายไป

var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );



8

แก้ไขล่าสุด: 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 return todaysDate = "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]จะให้เวลาของวันกับคุณ


7

คุณสามารถใช้สิ่งนี้

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

6

หากคุณใช้ jQuery ลองซับอันนี้:

$.datepicker.formatDate('dd/mm/yy', new Date());

นี่คือการประชุมสำหรับการจัดรูปแบบวันที่

  • d - วันของเดือน (ไม่มีศูนย์นำ)
  • dd - วันที่ของเดือน (ตัวเลขสองหลัก)
  • o - วันแห่งปี (ไม่มีศูนย์นำหน้า)
  • oo - วันของปี (สามหลัก)
  • D - ชื่อวันสั้น ๆ
  • DD - ชื่อวันยาว
  • m - เดือนของปี (ไม่มีศูนย์นำหน้า)
  • mm - เดือนของปี (สองหลัก)
  • M - ชื่อเดือนสั้น ๆ
  • MM - เดือนชื่อยาว
  • y - ปี (สองหลัก)
  • ปี - ปี (สี่หลัก)

นี่คือการอ้างอิงสำหรับ jQuery datepicker


5

วิธีดึงออกที่ตรงไปตรงมา (ในขณะที่พิจารณาเขตเวลาปัจจุบันของคุณการใช้ประโยชน์จากรูปแบบ ISO yyyy-mm-dd) คือ:

let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"

โดยปกติแล้วนี่เป็นรูปแบบวันที่ที่เข้ากันได้และสามารถแปลงเป็นค่าวันที่ได้ตามต้องการหากต้องการ:

Date.parse(d); // 1582044297000

4

คุณสามารถชำระเงินนี้

var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);

และดูเอกสารประกอบสำหรับตัวสร้าง Date () ลิงค์


4

เป็นเรื่องใหญ่อะไรกับเรื่องนี้ .. วิธีที่สะอาดที่สุดในการทำเช่นนี้คือ

var currentDate=new Date().toLocaleString().slice(0,10);


1
มันจะกลับมาความผิดพลาดเช่นนี้ดีกว่าที่จะใช้3/4/2018, new Date().toJSON().slice(0,10)
DevonDahon

นี่คือที่สมบูรณ์แบบสำหรับเพียงแค่ได้รับวันที่ดูหรือสำหรับข้อมูลเกี่ยวกับคอนโซลบันทึกหรือ UI ดีกว่าสำหรับฉันโดยไม่ต้อง.slice(0,10)
พอลคาร์ลตัน

4

สิ่งนี้อาจช่วยคุณได้

var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());

สิ่งนี้จะพิมพ์วันที่ปัจจุบันในรูปแบบ dd / MM / yyyy



3

ฉันคิดว่านี่เป็นคำถามเก่า แต่วิธีที่ง่ายที่สุดจะเป็นดังนี้:

var date = new Date();
var TimeStamp = date.toLocaleString();

function CurrentTime(){
  alert(TimeStamp);
}

สิ่งนี้จะคว้าเวลาปัจจุบันส่งผ่านไปยังสตริงตามตำแหน่งและจากนั้นคุณสามารถเรียกใช้ฟังก์ชัน CurrentTime เพื่อแสดงเวลา สำหรับฉันแล้วนี่เป็นวิธีที่มีประสิทธิภาพมากที่สุดในการรับเวลาสำหรับบางสิ่ง


นี่จะส่งคืนข้อมูล + เวลาเช่น '2018-4-6 16:20:22' และคำถามคือทำอย่างไรถึงจะออกเดทเท่านั้น
Vlad Bezden
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.