มาดูเรื่อง Timestamp ก่อนนะครับ Timestamp ก็คือข้อมูลที่บอกว่าเหตุการใดเหตุการหนึ่ง เกิดขึ้นเมื่อไร เช่น เวลาเราไปฝากเงินหรือถอนเงินจากธนาคาร จะมีวันที่และเวลาที่เราทํารายการระบุอยู่ด้วย โดยทั่วไป Timestamp จะเก็บเป็นวันที่และเวลา หรือขึ้นอยู่กับความต้องการของระบบ
ตัวอย่างของข้อมูล Timestamp ที่เก็บในระบบคอมพิวเตอร์
Tue 01-01-2009 6:00
Sat Jul 23 02:16:57 2005
2005-10-30 T 10:45 UTC
(1969-07-21 T 02:56 UTC)
07:38, 11 December 2012 (UTC)
2007-11-09 T 11:20 UTC
12569537329
ในระบบคอมพิวเตอร์ไม่ได้มีนาฬิกาอยู่ภายใน แต่จะมีสิ่งหนึ่งที่เรียกว่า System clock ที่มีหน้าที่ในการนับเพิ่มขึ้นเรื่อยๆในทุกๆวินาที ซึ่งคอมพิวเตอร์จะไม่สามารถรู้ได้ว่าตอนนี้เวลาเท่าไร ดังนั้นจึงต้องมีจุดอ้างอิง ในแต่ระบบก็จะมีจุดอ้างอิงเวลาเริ่มต้นที่แตกต่างกันไป และจํานวนที่คอมพิวเตอร์นับได้จาก System clock จะเรียกว่า System time
Epoch หรือ Unix Epoch เป็นวิธีการนับเวลา System time ของระบบ Unix Based จะถูกเก็บเป็น signed 32-bit integer ซึ่งการนับเวลาแบบนี้จะอ้างอิงเวลาเริ่มต้นจาก วันพฤหัสบดีที่ 1 มกราคม 1970 เวลา 00:00:00 ตามเขตเวลา UTC แล้วก็นับไปเรื่อยๆ มาจนถึงปัจจุบัน Unix Epoch นั้น ยังไม่รองรับเรื่องของ leap second (เพิ่มวินาทีเข้าไปเพื่อชดเชยเวลาที่ไม่พอดีกับการหมุนของโลก) ปัญหานี้สามารถแก้ปัญหาได้โดยการนับเวลาวินาทีสุดท้ายของวันซํ้าอีก 1 รอบ การปรับเวลาแบบนี้ถูกทํามาแล้ว 25 ครั้ง อีกปัญหาหนึ่งจะเกิดขึ้นในปี 2038 เนื่องจาก Unix Epoch ถูกเก็บข้อมูลเป็น signed 32-bit integer (2ยกกําลัง32) จะทําให้เกิด overflow เมื่อเลยเวลา 03:14:07 UTC on 19 January 2038 ไป แล้วมาดูกันว่าจะเกิดอะไรขึ้นบ้าง :) Unix Epoch นี้ ได้ครบ 1,000 million แล้วเมื่อ 2001-09-09T01:46:40Z ซึ่งมีการฉลองกันด้วยที่เมือง Copenhagen ประเทศ Denmark ปาร์ตีจัดโดย DKUUG เวลาที่ผมเขียน Blog นี้คือ
1499935219 (2017-07-13T08:40:19+00:00)
จากตอนนี้อีกไม่ถึงวันจะมีค่าเวลาของ Unix Epoch 1500000000 (1,500 ล้าน) นับเป็นเวลาเลขสวยที่เกิดขึ้นประมาณทุกสามปี โดยปีนี้ตามเวลาประเทศไทยคือ 9 โมง 40 นาทีของวันศุกร์ที่ 14 กรกฎาคม 2560
สวัสดีครับ ในบทความนี้เราจะมาเรียนรู้ปัญหาการใช้งาน Async, Await กับ Loop ชนิดต่างๆใน Javascript เมื่อเราใช้ Async, Await ใน Loop แต่ละชนิดจะให้ผลออกมาไม่เหมือนกัน Loop บางชนิดจะ Await รอในแต่ละครั้งของการวน Loop แต่สําหรับ Loop บางชนิดจะไม่รอ ดังนั้นมาดูกันครับว่า Loop แต่ละชนิดมีการทํางานกับ Async, Await อย่างไรบ้าง ดังนี้ครับ
สวัสดีครับ บทความนี้เราจะมาเรียนรู้การใช้งานคําสั่ง git log เพื่อดู commit history กันครับ
BMS ย่อมาจาก Battery Management System หรือถ้าแปลเป็นไทยก็คือ ระบบจัดการแบตเตอรี่ ซึ่งจะทําหน้าที่ในการ Maintain balance cell battery เพื่ออัดไฟให้เต็มมากที่สุด และยืดอายุการใช้งานแบตเตอรี่ หากยังนึกภาพไม่ออก ผมจะยกตัวอย่างดังนี้ครับ เมื่อเรานําแบตเตอรี่หลายๆก้อนมาต่อกันแบบอนุกรมเพื่อให้ได้แรงดันไฟฟ้าตามที่เราต้องการแบบในรูป