คลังเก็บบล็อก

วันและเวลาในจาว่าสคริปต์


การทำงานเกี่ยวกับ วันที่และเวลาบน จาว่าสคริปต์ ก่อนอื่นเราต้องสร้างออบเจ็ควันที่และเวลาขึ้นมาก่อนโดยประกาศ new Date()
ประกาศได้หลายรูปแบบคือ
• dateTimeObj = new Date() จะได้วันเวลาปัจจุบัน
• dateTimeObj = new Date(1297876193291) มิลลิวินาทีโดยนับหนึ่งตั้งแต่วันที่ 1970/01/01
• dateTimeObj = new Date(‘February17, 2011 21:13:00’) ( เวลาจะใส่หรือไม่ก็ได้ครับ )
• dateTimeObj = new Date(2011,1,17,21,13,0) รูปแบบคือ ปีค.ศ. ,เดือน – 1 ,วันที่ ,ชั่วโมง (24 ชั่วโมง) ,นาที วินาที ( เวลาจะใส่หรือไม่ก็ได้ครับ )
เมื่อได้ออบเจ็ควันที่และเวลา ( ในตัวอย่างคือ dateTimeObj ) มาแล้วสามารถ เมทอดแสดงค่ารูปแบบต่างๆ เช่น

alert ('วันที่คือ ' + dateTimeObj.getDate() + '/' + dateTimeObj.getMonth() + '/' + dateTimeObj.getFullYear() );

เมทอดที่ใช้บ่อย เช่น

getDate() วันที่ ( 1 – 31 )
getDay() ลำดับของวัน ( 0 – 6 )
getFullYear() ปี 4 หลัก
getHours() ชั่วโมง ( 0 – 23 )
getMilliseconds() มิลลิวินาที ( Millisecond ) ( 0 – 999 )
getMinutes() นาที ( 0 – 59 )
getMonth() เดือน ( 0 – 11 )
getSeconds() วินาที ( 0 – 59 )
toString() Thu Feb 17 2011 00:30:21 GMT+0700 (SE Asia Standard Time)

จะเห็นว่าส่วนใหญ่จะเริ่มต้นโดยนับจาก 0 อันนี้ทำให้ต้องระมัดระวังในการใช้งาน เช่น ถ้าจะหาความแตกต่างระหว่างวันที่ 2 วันคือ

today = new Date();
dateTimeObj = new Date(2011,1,17,21,13,0);
 /* 17/02/2011 13.00 น. */
difference = dateTimeObj - today;
days = Math.round( difference / (1000*60*60*24) );
/* ( 17/02/2011 - วันนี้ ) หารด้วย ( มิลลิวินาที x วินาที x นาที x วัน ) จากนั้นปัดเศษขึ้น */
alert('วันต่างกัน ' + days + ' วัน' );

สังเกตว่า ในหลายๆ จุด ค่าตัวเลขจะน้อยกว่าที่เราใช้ตามปกติอยู่ 1 ค่า
ดูเพิ่มเติม

โฆษณา

สนุกกับเวลา


ครั้งหนึ่ง เพราะเรียนบอกเวลาใช้ AM. / PM. เลยคิดว่าไทยเป็นประเทศเดียวที่มีการนับเวลาแบบหนึ่งวันมี 24 ชั่วโมง อันนี้เป็นความเข้าใจผิด เพราะว่าประเทศส่วนใหญ่ใช้การนับเวลาแบบนี้เป็นเรื่องปกติ (ทำไมไม่ทำนาฬิกา 24 ชม. มาขายเยอะๆนะ)
อีกอย่างก็คือ นอกจากนับ 12, 24 ชั่วโมงแล้วบ้านเรากับลาวยังมีอะไรแปลกๆ ที่ขนาดคนไทยแต่กำเนิดบางคน (ผม) ยังไม่เคยสังเกตคือเรากับลาว มีการนับแบบ 6 ชั่วโมงพวก ตีหนึ่ง ตีสอง นั่นละครับ
ทีนี้มาถึงเรื่องวันที่กันบ้าง เราเขียนวันที่ใช้ วัน เดือน ปี อเมริกาใช้ เดือน วัน ปี ( ทำเอางงประจำ วันที่ของ boss มันวันหรือเดือน ) ส่วนใหญ่ใช้ ปี เดือน วัน (อันนี้ดูผ่านๆ ก็เห็นเลยว่า อันไหนก่อนอันไหนหลัง) เวลาเขียนโปรแกรมใช้ นับเป็นจำนวนหน่วยวินาทีตั้งแต่ปี 1900 ( 13 กุมพาพันธ์ 2554 เที่ยงคืนพอดีคือ 1297576800 อันนี้ใครเห็นแล้วบอกเวลาได้ คุณควรรีบไปสอบชิงทุนอะไรก็ได้ รับรองติดแน่ๆ ) ระบบที่ผมชอบที่สุดคือ ระบบปฏิทินของฝรั่งเศสสมัยปฎิวัติ มีนักวิทยาสาสตร์ คณิตศาสตร์ เข้าร่วมหลายคนเห็นว่าการนับ 1 สัปดาห์มีเจ็ดวัน ตามจำนวนวันที่พระเจ้าสร้างโลก นะมัน คำนวณยาก (อย่าง ทำงานระหว่างเดือน กุมพาพันธ์ ถึงสิงหาคมมันกี่วัน กี่ชั่งโมงกันแน่) เลยแก้ง่ายๆ ออกกฎหมาย

1 ปี มี 10 เดือน
1 เดือน มี 10 วัน (เงินเดือนออก เร็วทันใช้)
1 วัน มี 10 ชั่วโมง
1 ชั่วโมง มี 100 นาที (ถ้าเป็น 10 นาทีจะสวยมาก)
1 นาที มี 100 วินาที

A FRENCH REPUBLICAN ORMOLU PENDULE PORTATIVE SHOWING BOTH DECIMAL AND DUODECIMAL TIME AND STRIKING DECIMAL TIME
decimal clock
คิดง่ายสุดๆ น่าเสียดายที่ยกเลิกไปแล้ว และไม่มีที่ไหนรับไปใช้ต่อ มีอะไรแปลกๆ อีกเยอะลองอ่านดูนะ เวลาของเรามันไม่เท่ากัน

%d bloggers like this: