วันที่และเวลาวัตถุ
1. บทนำ
วัตถุวันที่เป็นวัตถุที่ทำงานในวันที่และเวลา การทำงานของวัตถุวันที่ในวันที่และเวลาสามารถทำได้ผ่านวิธีการเท่านั้น
2. ตัวสร้าง
2.1 วันที่ใหม่ (): ส่งคืนวันที่และเวลาท้องถิ่นปัจจุบัน
พารามิเตอร์: ไม่มี
ค่าส่งคืน:
{วันที่} ส่งคืนวัตถุวันที่แทนวันที่และเวลาท้องถิ่น
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt = วันที่ใหม่ ();
console.log (dt); // => ส่งคืนวัตถุวันที่แทนวันที่และเวลาท้องถิ่น
2.2 วันที่ใหม่ (มิลลิวินาที): แปลงมิลลิวินาทีเป็นวัตถุวันที่
พารามิเตอร์:
①มิลลิวินาที {int}: มิลลิวินาที; แสดงจำนวนมิลลิวินาทีเริ่มต้นจาก '1970/01/01 00:00:00' เป็นจุดเริ่มต้น
หมายเหตุ: ต้องเพิ่มเวลานาทีและวินาทีที่จุดเริ่มต้นในเขตเวลาปัจจุบัน เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นที่แท้จริงคือ: '1970/01/01 08:00:00'
ค่าส่งคืน:
{วันที่} ส่งคืนวัตถุวันที่ซ้อนทับ
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt = วันที่ใหม่ (1,000 * 60 * 1); // จำนวนมิลลิวินาทีให้ล่วงหน้า 1 นาที
console.log (dt); // => {วันที่}: 1970/01/01 08:01:00
dt = วันที่ใหม่ (-1000 * 60 * 1); // จำนวนมิลลิวินาทีที่จะย้อนกลับไป 1 นาที
console.log (dt); // => {วันที่}: 1970/01/01 07:59:00
2.3 วันที่ใหม่ (Datestr): แปลงสตริงเป็นวัตถุวันที่
พารามิเตอร์:
①datestr {String}: สตริงที่สามารถแปลงเป็นวัตถุวันที่ (สามารถละเว้นเวลาได้); มีสองรูปแบบหลักของสตริง:
1) YYYY/MM/DD HH: MM: SS (แนะนำ): หากเวลาถูกละเว้นเวลาของวัตถุวันที่ส่งคืนคือ 00:00:00
2) YYYY-MM-DD HH: MM: SS: หากละเว้นเวลาเวลาของวัตถุวันที่ส่งคืนคือ 08:00:00 (รวมถึงเขตเวลาท้องถิ่น) หากเวลาไม่ถูกละเว้นสตริงนี้จะล้มเหลวในการแปลงใน IE!
ค่าส่งคืน:
{วันที่} ส่งคืนวัตถุวันที่แปลง
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt = วันที่ใหม่ ('2014/12/25'); // yyyy/mm/dd
console.log (dt); // => {วันที่}: 2014/12/25 00:00:00
dt = วันที่ใหม่ ('2014/12/25 12:00:00'); // yyyy/mm/dd hh: mm: ss
console.log (dt); // => {วันที่}: 2014/12/25 12:00:00
dt = วันที่ใหม่ ('2014-12-25'); // yyyy-mm-dd
console.log (dt); // => {วันที่}: 2014-12-25 08:00:00 (เพิ่มลงในเขตเวลาของตะวันออก 8)
dt = วันที่ใหม่ ('2014-12-25 12:00:00'); // yyyy-mm-dd hh: mm: ss (หมายเหตุ: วิธีการแปลงนี้จะรายงานข้อผิดพลาดใน IE!)
console.log (dt); // => {วันที่}: 2014-12-25 12:00:00
2.4 วันที่ใหม่ (ปี, เดือน, OPT_DAY, OPT_HOURS, OPT_MINUTES, OPT_SECONDS, OPT_MILLISECONDS): แปลงปี, เดือน, วัน, ชั่วโมง, นาทีและครั้งที่สองเป็นวัตถุวันที่
พารามิเตอร์:
①ปี {int}: ปี; 4 หลัก ตัวอย่างเช่น: 1999, 2014
②month {int}: เดือน; 2 หลัก คำนวณจาก 0, 0 หมายถึงมกราคมและ 11 หมายถึงธันวาคม
③opt_day {int} ตัวเลือก: หมายเลข; หมายเลข 2 หลัก เริ่มจาก 1, 1 หมายถึงหมายเลข 1
④opt_hours {int} ตัวเลือก: เวลา; หมายเลข 2 หลัก ค่า 0 ~ 23
⑤opt_minutes {int} ตัวเลือก: คะแนน; ตัวเลข 2 หลัก ค่า 0 ~ 59
⑥opt_seconds {int} ตัวเลือก: วินาที; 2 ไม่มีจำนวน; ค่า 0 ~ 59
⑦opt_milliseconds {int} ตัวเลือก: มิลลิวินาที; ค่า 0 ~ 999
ค่าส่งคืน:
{วันที่} ส่งคืนวัตถุวันที่แปลง
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt = วันที่ใหม่ (2014, 11); // ธันวาคม 2014 (หมายเลขเดือนที่ป้อนที่นี่คือ 11)
console.log (dt); // => {วันที่}: 2014/12/01 00:00:00
dt = วันที่ใหม่ (2014, 11, 25); // 25 ธันวาคม 2014
console.log (dt); // => {วันที่}: 2014/12/25 00:00:00
dt = วันที่ใหม่ (2014, 11, 25, 15, 30, 40); // 25 ธันวาคม 2014 15:30:40
console.log (dt); // => {วันที่}: 2014/12/25 15:30:40
dt = วันที่ใหม่ (2014, 12, 25); // 25 ธันวาคม 2014 (หมายเลขเดือนที่ป้อนที่นี่คือ 12 ระบุเดือนที่ 13 ข้ามไปถึงเดือนมกราคมของปีที่สอง)
console.log (dt); // => {วันที่}: 2015/01/25
3. คุณสมบัติ
ไม่มี; วัตถุวันที่สามารถทำงานได้ในวันที่และเวลาผ่านวิธีการเท่านั้น
4. ตัวอย่างวิธีการ
วิธีการอินสแตนซ์ของวัตถุวันที่ส่วนใหญ่แบ่งออกเป็นสองรูปแบบ: เวลาท้องถิ่นและเวลา UTC สำหรับวิธีการเดียวกันโดยทั่วไปจะมีการดำเนินการรูปแบบเวลาสองครั้ง (ชื่อวิธีมี UTC ซึ่งคือการใช้งานเวลา UTC) ที่นี่เราแนะนำการดำเนินงานในเวลาท้องถิ่นเป็นหลัก
4.1 รับวิธี
4.1.1 GetRyTherear (): ส่งคืนค่าปีของวัตถุวันที่; ปี 4 บิต
4.1.2 getMonth (): ส่งคืนค่าเดือนของวัตถุวันที่ เริ่มต้นจาก 0 ดังนั้นเดือนจริง = ค่าส่งคืน +1
4.1.3 getDate (): ส่งคืนค่าวันที่ในเดือนของวัตถุวันที่; ช่วงของค่าคือ 1 ~ 31
4.1.4 Gethours (): ส่งคืนค่าชั่วโมงของวัตถุวันที่
4.1.5 getMinutes (): ส่งคืนค่านาทีของวัตถุวันที่
4.1.6 GetSeconds (): ส่งคืนค่าที่สองของวัตถุวันที่
4.1.7 getMilliseconds (): ส่งคืนค่ามิลลิวินาทีของวัตถุวันที่
4.1.8 getday (): ส่งคืนค่าสัปดาห์ของสัปดาห์ของวัตถุวันที่; 0 คือวันอาทิตย์ 1 คือวันจันทร์ 2 คือวันอังคารและอื่น ๆ
4.1.9 getTime (): ส่งคืนค่ามิลลิวินาทีระหว่างวัตถุวันที่และ '1970/01/01 00:00:00' (เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นที่แท้จริงคือ: '1970/01/01 08:00:00:00')
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
dt.getlyear (); // => 2014: ปี
dt.getMonth (); // => 11: เดือน; เป็นจริงในเดือนธันวาคม (เดือนคำนวณจาก 0)
dt.getdate (); // => 25: วัน
dt.getHours (); // => 15:
dt.getMinutes (); // => 30: คะแนน
dt.getSeconds (); // => 40: วินาที
dt.getmilliseconds (); // => 333: มิลลิวินาที
dt.getday (); // => 4: ค่าของวันของสัปดาห์
dt.getTime (); // => 14194926403333: ส่งคืนค่ามิลลิวินาทีระหว่างวัตถุวันที่และ '1970/01/01 00:00:00' (เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นคือ: '1970/01/01 08:00:00:00'
4.2 วิธีการตั้งค่า
4.2.1 SetGalyEar (ปี, OPT_MONTH, OPT_DATE): ตั้งค่าปีของวัตถุวันที่; ปี 4 บิต
4.2.2 setMonth (เดือน, opt_date): ตั้งค่าเดือนของวัตถุวันที่ 0 หมายถึงมกราคม 11 หมายถึงธันวาคม
4.2.3 setDate (วันที่): ตั้งค่าวันที่ในเดือนของวัตถุวันที่; ช่วงค่าคือ 1 ~ 31
4.2.4 sethours (ชั่วโมง, opt_min, opt_sec, opt_msec): ตั้งค่าชั่วโมงของวัตถุวันที่
4.2.5 setMinutes (min, opt_sec, opt_msec): ตั้งค่านาทีของวัตถุวันที่
4.2.6 SetSeconds (SEC, OPT_MSEC): ตั้งค่าที่สองของวัตถุวันที่
4.2.7 SetMilliseconds (MSEC): ตั้งค่ามิลลิวินาทีของวัตถุวันที่
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt = วันที่ใหม่ ();
dt.setfulelyear (2014); // => 2014: ปี
dt.setMonth (11); // => 11: เดือน; เป็นจริงในเดือนธันวาคม (เดือนคำนวณจาก 0)
dt.setdate (25); // => 25: วัน
Dt.Sethours (15); // => 15:
dt.setMinutes (30); // => 30: คะแนน
dt.setseconds (40); // => 40: วินาที
dt.setmilliseconds (333); // => 333: มิลลิวินาที
console.log (dt); // => 25 ธันวาคม 2014 15:30:40 วินาที 333 มิลลิวินาที
4.3 วิธีอื่น ๆ
4.3.1 TOSTRING (): แปลงวันที่เป็น 'ปีเดือนวันชั่วโมงนาทีและสตริง' ที่สอง
4.3.2 Tolocalestring (): แปลงวันที่เป็นสตริงรูปแบบท้องถิ่นของ 'ปีเดือนวันชั่วโมงนาทีและที่สอง'
4.3.3 Todatestring (): แปลงวันที่เป็นสตริง 'ปีเดือนเดือน'
4.3.4 TolocaledateString (): แปลงวันที่เป็นสตริงรูปแบบท้องถิ่นของ 'ปีเดือนและวัน'
4.3.5 totimestring (): แปลงวันที่เป็นสตริง 'เวลานาทีและวินาที'
4.3.6 Tolocaletimestring (): แปลงวันที่เป็นสตริงรูปแบบท้องถิ่น 'นาทีและวินาที'
4.3.7 valueof (): เช่น getTime (), มันส่งคืนค่ามิลลิวินาทีระหว่างวัตถุวันที่และ '1970/01/01 00:00:00' (เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นคือ: '1970/01/01 08:00:00:00
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt = วันที่ใหม่ ();
console.log (dt.toString ()); // => วันที่ 23 ธันวาคม 2014 22:56:11 GMT+0800 (เวลามาตรฐานจีน): แปลงวันที่เป็น 'ปีเดือนวันชั่วโมงชั่วโมงนาทีและสตริง' ที่สอง '
console.log (dt.tolocalestring ()); // => 23 ธันวาคม 2014 เวลา 22:56:11 น.: แปลงวันที่เป็นสตริงรูปแบบท้องถิ่นของ 'ปีเดือนวันชั่วโมงนาทีและที่สอง'
console.log (dt.todatestring ()); // => วันที่ 23 ธันวาคม 2014: แปลงวันที่เป็นสตริง 'ปีเดือนเดือน'
console.log (dt.tolocaledatestring ()); // => 23 ธันวาคม 2014: แปลงวันที่เป็นสตริงรูปแบบท้องถิ่นของ 'ปีเดือนและวันที่'
console.log (dt.totimestring ()); // => 22:56:11 GMT+0800 (เวลามาตรฐานจีน): แปลงวันที่เป็นสตริง 'ชั่วโมงนาทีและวินาที'
console.log (dt.tolocaletimestring ()); // => 10:56:11 PM: แปลงวันที่เป็นสตริงรูปแบบท้องถิ่น 'ชั่วโมงและวันที่สอง'
console.log (dt.valueof ()); // => ส่งคืนค่ามิลลิวินาทีระหว่างวัตถุวันที่และ '1970/01/01 00:00:00' (เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นคือ: '1970/01/01 08:00:00:00'
5. วิธีการคงที่
5.1 วันที่ตอนนี้ ()
คำอธิบาย: ส่งคืนค่ามิลลิวินาทีระหว่างวัตถุวันที่ของวันที่และเวลาปัจจุบันและ '1970/01/01 00:00:00' (เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นที่แท้จริงคือ: '1970/01/01 08:00:00:00'))
พารามิเตอร์: ไม่มี
ค่าส่งคืน:
{int}: จำนวนมิลลิวินาทีระหว่างเวลาปัจจุบันและเวลาเริ่มต้น
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
console.log (date.now ()); // => 1419431519276
5.2 date.parse (Datestr)
คำอธิบาย: แปลงสตริงเป็นวัตถุวันที่จากนั้นส่งคืนค่ามิลลิวินาทีระหว่างวัตถุวันที่นี้และ '1970/01/01 00:00:00' (เขตเวลาของเวลาปักกิ่งคือตะวันออก 8 และเวลาเริ่มต้นคือ: '1970/01/01 08:00:00
พารามิเตอร์:
①datestr {String}: สตริงที่สามารถแปลงเป็นวัตถุวันที่ (สามารถละเว้นเวลาได้); มีสองรูปแบบหลักของสตริง:
1) YYYY/MM/DD HH: MM: SS (แนะนำ): หากเวลาถูกละเว้นเวลาของวัตถุวันที่ส่งคืนคือ 00:00:00
2) YYYY-MM-DD HH: MM: SS: หากละเว้นเวลาเวลาของวัตถุวันที่ส่งคืนคือ 08:00:00 (รวมถึงเขตเวลาท้องถิ่น) หากไม่ละเว้นเวลาสตริงนี้จะส่งคืน NAN (ไม่ใช่จำนวน) ใน IE!
ค่าส่งคืน:
{int} ส่งคืนจำนวนมิลลิวินาทีระหว่างวัตถุวันที่แปลงและเวลาเริ่มต้น
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
console.log (date.parse ('2014/12/25 12:00:00')); // => 1419480000000
console.log (date.parse ('2014-12-25 12:00:00')); // => 1419480000000 (หมายเหตุ: วิธีการแปลงนี้ส่งคืน NAN ใน IE!)
6. การปฏิบัติงานจริง
6.1 แปลงประเภท DateTime ของ C# เป็นวัตถุวันที่ของ JS
หมายเหตุ: รูปแบบที่ส่งกลับไปยังเบื้องหน้าผ่านการจัดลำดับ JSON คือ "// วันที่ (1419492640000) //" จำนวนที่อยู่ตรงกลางแสดงจำนวนมิลลิวินาทีระหว่างค่าของวันที่และเวลาเริ่มต้น
ตัวอย่าง:
รหัสพื้นหลัง: ASHX ง่ายๆ
การคัดลอกรหัสมีดังนี้:
โมฆะสาธารณะ ProcessRequest (บริบท httpContext) {
System.web.script.serialization.javascripterializer JS = ใหม่ System.web.script.serialization.javascripterializer ();
DateTime DT = DateTime.Parse ("2014-12-25 15:30:40");
String rs = js.serialize (dt); // serialize ถึง JSON
context.response.contentType = "ข้อความ/ธรรมดา";
Context.Response.Write (RS);
-
รหัสแผนกต้อนรับ:
การคัดลอกรหัสมีดังนี้:
var dateTimejsonstr = '// วันที่ (1419492640000) //'; // c# json format สำหรับการแปลงประเภท dateTime
var msecstr = datetimejsonstr.toString (). แทนที่ (/// วันที่/(([-]?/d+) //// gi, "$ 1"); // => '1419492640000': รับสตริงมิลลิวินาทีโดยการเปลี่ยนปกติ
var msesint = number.parseInt (MSECSTR); // แปลงสตริงมิลลิวินาทีเป็นค่าตัวเลข
var dt = วันที่ใหม่ (msesint); // เริ่มต้นวัตถุวันที่
console.log (dt.tolocalestring ()); // => 25 ธันวาคม 2014 เวลา 15:30:40 น.
6.2 รับการนับถอยหลัง
คำอธิบาย: คำนวณจำนวนวันและเวลาที่แตกต่างระหว่างเวลาปัจจุบันและเวลาเป้าหมาย
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
-
* กลับสู่การนับถอยหลัง
* @param dt {วันที่}: วัตถุวันที่ปลายทาง
* @return {strin}: return countdown: x days x ชั่วโมง x นาทีนาที
-
ฟังก์ชั่น getDowntime (dt) {
// 1. รับการนับถอยหลัง
var intervalmsec = dt - date.now (); // ลบเวลาปัจจุบันเพื่อให้ได้จำนวนมิลลิวินาทีของความแตกต่างระหว่างทั้งสอง
VAR IntervalSec = IntervalMsec / 1000; // แปลงเป็นวินาที
var day = parseInt (Intervalsec / 3600 /24); // จำนวนวัน
var hour = parseInt ((Intervalsec - วัน * 24 * 3600) / 3600); // ชั่วโมง
var min = parseInt ((Intervalsec - วัน * 24 * 3600 - ชั่วโมง * 3600) / 60); // นาที
// 2. หากมิลลิวินาทีของความแตกต่างน้อยกว่า 0 หมายความว่าเวลาปลายทางน้อยกว่าเวลาปัจจุบัน ค่าที่ใช้ในเวลานี้เป็นลบทั้งหมด: -x วันชั่วโมงชั่วโมง เมื่อแสดงเพียงแสดงค่าลบก่อนจำนวนวัน
if (IntervalMsec <0) {
ชั่วโมง = 0 - ชั่วโมง;
min = 0 - min;
-
// 3. ประกบสตริงและส่งคืน
var rs = วัน + 'วัน' + ชั่วโมง + 'ชั่วโมง' + นาที + 'นาที';
กลับอาร์เอส;
-
// เวลาปัจจุบัน: 2014/12/28 13:26
console.log (getDowntime (วันที่ใหม่ ('2015/06/01'))); // => 154 วัน 10:33
console.log (getDowntime (วันที่ใหม่ ('2014/01/01'))); // => -361 วัน 13:26
6.3 การเปรียบเทียบขนาดวัตถุ 2 วันที่
หมายเหตุ: คุณสามารถเปรียบเทียบจำนวนมิลลิวินาทีของทั้งสองและเวลาเริ่มต้นเพื่อแยกความแตกต่างของขนาด
ตัวอย่าง:
การคัดลอกรหัสมีดังนี้:
var dt1 = วันที่ใหม่ ('2015/12/01');
var dt2 = วันที่ใหม่ ('2015/12/25');
console.log (dt1> dt2); // => เท็จ