โดยทั่วไปรูปแบบการป้อนวันที่ของ JavaScript มี 3 ประเภท:
"25-03-2558" (มาตรฐานสากล)
"25/03/2558"
"25 มี.ค. 2558" หรือ "25 มี.ค. 2558"
รูปแบบ ISO เป็นไปตามมาตรฐานที่เข้มงวดใน JavaScript
รูปแบบอื่นไม่ได้ มีการกำหนดไว้อย่างดีและอาจเป็นเฉพาะเบราว์เซอร์
ไม่ขึ้นอยู่กับรูปแบบอินพุต JavaScript จะส่งออกวันที่ทั้งหมด (โดยค่าเริ่มต้น) รูปแบบสตริงข้อความ:
<script>document.write(new Date())
ISO 8601 เป็นมาตรฐานสากลสำหรับการแสดงวันที่และ ครั้ง
ไวยากรณ์ ISO 8601 (YYYY-MM-DD) เป็นรูปแบบวันที่ JavaScript ที่ต้องการเช่นกัน:
const d = new Date("2015-03-25");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015-03-25");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
วันที่คำนวณจะสัมพันธ์กับเขตเวลาของคุณ
ผลลัพธ์ข้างต้นขึ้นอยู่กับเขตเวลาของคุณ จะแตกต่างกันไประหว่างวันที่ 24 มีนาคมถึง 25 มีนาคม
วันที่ ISO สามารถเขียนได้โดยไม่ต้องระบุวัน (YYYY-MM):
const d = new Date("2015-03");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015-03");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
โซนเวลาจะแตกต่างกันไปตามผลลัพธ์ข้างต้นระหว่างวันที่ 28 กุมภาพันธ์ถึง 01 มีนาคม
วันที่ ISO สามารถเขียนได้โดยไม่มีเดือนและวัน (YYYY):
const d = new Date("2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p id="demo"></p>
<script>
const d = new Date("2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
โซนเวลาจะเปลี่ยนแปลงตามผลลัพธ์ข้างต้นระหว่างวันที่ 31 ธันวาคม 2014 ถึง 1 มกราคม 2015
วันที่ ISO สามารถเขียนได้โดยเพิ่มชั่วโมง นาที และวินาที (ปปปป-ดด-ววTHH:ดด:SSZ):
const d = new Date("2015-03-25T12:00:00Z");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p>Separate date and time with a capital T.</p>
<p>Indicate UTC time with a capital Z.</p>
<p id="demo"></p>
<script>
const d = new Date("2015-03-25T12:00:00Z");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
วันและเวลาคั่นด้วยตัว T ใหญ่
เวลา UTC ถูกกำหนดด้วยอักษรตัวใหญ่ Z
หากคุณต้องการแก้ไขเวลาที่สัมพันธ์กับ UTC ให้ลบ Z ออกแล้วเพิ่ม +HH:MM หรือ -HH:MM แทน:
const d = new Date("2015-03-25T12:00:00-06:30");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript ISO Dates</h2>
<p>Modify the time relative to UTC by adding +HH:MM or subtraction -HH:MM to the time.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
new Date("2015-03-25T12:00:00-06:00");
</script>
</body>
</html>
UTC (เวลาสากลเชิงพิกัด) เหมือนกับ GMT (เวลามาตรฐานกรีนิช)
การละเว้น T หรือ Z ในสตริงวันที่-เวลาสามารถให้ผลลัพธ์ที่แตกต่างกันในเบราว์เซอร์ที่แตกต่างกัน
เมื่อตั้งวันที่โดยไม่ระบุเขตเวลา JavaScript จะใช้ เขตเวลาของเบราว์เซอร์
เมื่อรับวันที่โดยไม่ระบุเขตเวลาผลลัพธ์ก็คือ แปลงเป็นเขตเวลาของเบราว์เซอร์
กล่าวอีกนัยหนึ่ง: หากสร้างวันที่/เวลาตามเวลา GMT (เวลามาตรฐานกรีนิช) ระบบจะ วันที่/เวลาจะถูกแปลงเป็น CDT (เวลาตามฤดูกาลของสหรัฐอเมริกากลาง) หากผู้ใช้เรียกดู จากตอนกลางของสหรัฐอเมริกา
วันที่แบบสั้นจะเขียนด้วยไวยากรณ์ "MM/DD/YYYY" เช่นนี้
const d = new Date("03/25/2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("03/25/2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
ในบางเบราว์เซอร์ เดือนหรือวันที่ไม่มีเลขศูนย์นำหน้าอาจทำให้เกิดข้อผิดพลาด:
const d = new Date("2015-3-25");
ไม่ได้กำหนดลักษณะการทำงานของ "ปปปป/ดด/วว"
เบราว์เซอร์บางตัวอาจเป็นเช่นนั้น พยายามเดารูปแบบ บางคนจะกลับมาน่าน
const d = new Date("2015/03/25");
ลักษณะการทำงานของ "DD-MM-YYYY" ยังไม่มีการกำหนดไว้
เบราว์เซอร์บางตัวจะทำเช่นนั้น พยายามเดารูปแบบ บางคนจะกลับมาน่าน
const d = new Date("25-03-2015");
วันที่แบบยาวมักเขียนด้วยไวยากรณ์ "MMM DD YYYY" เช่นนี้
const d = new Date("Mar 25 2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("Mar 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
เดือนและวันสามารถอยู่ในลำดับใดก็ได้:
const d = new Date("25 Mar 2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("25 Mar 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
และเดือนสามารถเขียนเต็ม (มกราคม) หรือตัวย่อ (มกราคม):
const d = new Date("January 25 2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("January 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
const d = new Date("Jan 25 2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("Jan 25 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
เครื่องหมายจุลภาคจะถูกละเว้น ชื่อไม่คำนึงถึงขนาดตัวพิมพ์:
const d = new Date("JANUARY, 25, 2015");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript new Date()</h2>
<p id="demo"></p>
<script>
const d = new Date("JANUARY, 25, 2015");
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
หากคุณมีสตริงวันที่ที่ถูกต้อง คุณสามารถใช้ Date.parse()
วิธีการแปลงเป็นมิลลิวินาที
Date.parse()
ส่งกลับจำนวนมิลลิวินาทีระหว่างวันที่และมกราคม 1 ต.ค. 1970:
let msec = Date.parse("March 21, 2012");
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse() returns the number of milliseconds between the date and January 1, 1970:</p>
<p id="demo"></p>
<script>
const msec = Date.parse("March 21, 2012");
document.getElementById("demo").innerHTML = msec;
</script>
</body>
</html>
จากนั้นคุณสามารถใช้จำนวนมิลลิวินาทีเพื่อแปลงเป็นวันที่วัตถุ:
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
ลองด้วยตัวคุณเอง →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Date.parse()</h2>
<p>Date.parse(string) returns milliseconds.</p>
<p>You can use the return value to convert the string to a date object:</p>
<p id="demo"></p>
<script>
let msec = Date.parse("March 21, 2012");
const d = new Date(msec);
document.getElementById("demo").innerHTML = d;
</script>
</body>
</html>
หากต้องการข้อมูลอ้างอิงวันที่โดยสมบูรณ์ โปรดไปที่:
อ้างอิงวันที่ JavaScript ให้สมบูรณ์
ข้อมูลอ้างอิงประกอบด้วยคำอธิบายและตัวอย่างของคุณสมบัติ Date ทั้งหมดและ วิธีการ