YiMatrix · วารสารสำนักวิชา
เวลาปักกิ่งไม่ใช่เวลาธรรมชาติ เวลาสุริยะจริงคือ 'มาตรฐาน' ที่คนโบราณใช้
ก่อนมีนาฬิกาสมัยใหม่และ 'เวลาปักกิ่ง' คนโบราณวัดเวลาโดยอาศัยปรากฏการณ์ท้องฟ้า วิธีที่พบมากที่สุดคือการสังเกตตำแหน่งของดวงอาทิตย์และการเปลี่ยนแปลงของเงาเพื่อกำหนดชั่วโมง เงาสั้นที่ส
คำนำ
ก่อนมีนาฬิกาสมัยใหม่และ 'เวลาปักกิ่ง' คนโบราณวัดเวลาโดยอาศัยปรากฏการณ์ท้องฟ้า วิธีที่พบมากที่สุดคือการสังเกตตำแหน่งของดวงอาทิตย์และการเปลี่ยนแปลงของเงาเพื่อกำหนดชั่วโมง เงาสั้นที่สุดในตอนเที่ยง ยาวที่สุดในตอนเช้าและเย็น กฎธรรมชาติเหล่านี้กลายเป็นพื้นฐานของปฏิทินโบราณและการคำนวณทางโหราศาสตร์
ดังนั้น ศาสตร์ดั้งเดิมอย่างปาจื่อ (แปดอักษร) ปากกว้า (แปดทิศ) ฉีเหมิน (ประตูวิเศษ) และลิ่วเหริน (หกหยิน) เมื่อคำนวณความเจริญรุ่งเรืองและเสื่อมถอยของธาตุทั้งห้า เดิมทีไม่ได้อาศัยเวลาปักกิ่งที่เราคุ้นเคยในปัจจุบัน แต่ใช้เวลาสุริยะจริงที่ใกล้ชิดกับธรรมชาติมากกว่า
เวลาปักกิ่งเป็นเวลาทางการบริหารสมัยใหม่ โดยใช้เส้นเมริเดียนที่ 120 องศาของเขตเวลา UTC+8 เป็นเกณฑ์ ทำให้เวลาทั่วประเทศเป็นมาตรฐานเดียวกัน ในขณะที่เวลาสุริยะจริงนั้นแตกต่างกัน เนื่องจากคำนวณจากลองจิจูดท้องถิ่นและตำแหน่งจริงของดวงอาทิตย์บนท้องฟ้า ซึ่งเป็นเวลาทางดาราศาสตร์ที่แตกต่างกันไปตามสถานที่ กล่าวคือ ในขณะเดียวกันตามเวลาปักกิ่ง เวลาสุริยะจริงของปักกิ่ง ฉงชิ่ง และอุรุมชีจะแตกต่างกัน
ด้วยเหตุนี้ มีเพียงเวลาสุริยะจริงเท่านั้นที่สามารถสะท้อนสถานะของกาลเวลาและสถานที่ในท้องถิ่นได้อย่างแท้จริง หากใช้เวลาปักกิ่งแทนโดยไม่ปรับแก้ อาจทำให้เกิดความคลาดเคลื่อนกับตรรกะของกาลเวลาและสถานที่ที่ศาสตร์โบราณตั้งไว้แต่เดิม
ในการคำนวณเวลาสุริยะจริง จำเป็นต้องเริ่มจากเวลาสุริยะเฉลี่ยก่อน เนื่องจากการหมุนรอบตัวเองและโคจรรอบดวงอาทิตย์ของโลกไม่สม่ำเสมอ ความเร็วเชิงมุมของดวงอาทิตย์บนทรงกลมท้องฟ้าจึงเร็วและช้าต่างกัน ทำให้เกิดความแตกต่างระหว่างเวลาสุริยะจริงและเวลาสุริยะเฉลี่ย ซึ่งเรียกว่าสมการเวลา เวลาสุริยะเฉลี่ยเป็นเวลาอุดมคติที่ถูกเฉลี่ยให้สม่ำเสมอ ในขณะที่เวลาสุริยะจริงคือช่วงเวลาที่สอดคล้องกับตำแหน่งจริงของดวงอาทิตย์บนท้องฟ้าในแต่ละวัน
แนวคิดสำคัญ
ขั้นตอนการคำนวณเวลาสุริยะจริงมีดังนี้:
-
เวลาสุริยะเฉลี่ย: คำนวณจากลองจิจูดท้องถิ่นและเวลามาตรฐาน (เช่น เวลาปักกิ่ง) ได้เป็นเวลาเฉลี่ย
-
สมการเวลา: ใช้ปรับค่าความแตกต่างตามเส้นทางการเคลื่อนที่จริงของดวงอาทิตย์
-
เวลาสุริยะจริง: ได้จากการนำเวลาสุริยะเฉลี่ยบวกกับสมการเวลา ซึ่งเป็นเวลาที่แม่นยำตามตำแหน่งทางดาราศาสตร์ในท้องถิ่น
เวลาสุริยะจริง
เวลาสุริยะจริง (True Solar Time, TST) คือเวลาที่คำนวณจากตำแหน่งของดวงอาทิตย์บนท้องฟ้า ซึ่งแตกต่างจากเวลามาตรฐาน (เช่น UTC หรือเวลาท้องถิ่น) เนื่องจากเวลาสุริยะจริงสะท้อนตำแหน่งจริงของดวงอาทิตย์ในแต่ละวัน ณ สถานที่ต่างๆ บนโลก เวลาสุริยะจริงจะเปลี่ยนแปลงตามความยาวของวัน กล่าวคือ วงโคจรรูปวงรีของโลกและความเอียงของแกนหมุนทำให้เวลาสุริยะในแต่ละวันไม่เท่ากัน ความแตกต่างระหว่างเวลาสุริยะจริงกับเวลามาตรฐานเรียกว่าสมการเวลา (Equation of Time, EoT)
สมการเวลา
การคำนวณเวลาสุริยะจริงเป็นขั้นตอนที่สำคัญมาก อย่างไรก็ตาม ก่อนที่จะได้เวลาสุริยะจริง จำเป็นต้องคำนวณเวลาสุริยะเฉลี่ยก่อน เวลาสุริยะเฉลี่ยคำนวณจากความเร็วเฉลี่ยของการหมุนรอบตัวเองของโลก ซึ่งเกี่ยวข้องกับ 'ดวงอาทิตย์เฉลี่ย' ทางดาราศาสตร์ ในทางตรงกันข้าม เวลาสุริยะจริงคำนวณจากความเร็วการหมุนจริงของโลกและรูปร่างวงรีของวงโคจรโลก ซึ่งสะท้อนตำแหน่งจริงของดวงอาทิตย์บนท้องฟ้าในแต่ละวัน เนื่องจากความเร็วการหมุนของโลกไม่คงที่ จึงมีความแตกต่างระหว่างเวลาสุริยะจริงและเวลาสุริยะเฉลี่ย ซึ่งเรียกว่าสมการเวลา
เวลาสุริยะเฉลี่ย
เวลาสุริยะเฉลี่ย (Mean Solar Time) คือเวลาที่คำนวณจากความเร็วเฉลี่ยของการหมุนรอบตัวเองของโลก โดยสมมติว่าดวงอาทิตย์เคลื่อนที่สม่ำเสมอทุกวัน ในทางดาราศาสตร์ เวลาสุริยะเฉลี่ยเกี่ยวข้องกับ 'ดวงอาทิตย์เฉลี่ย' ซึ่งเป็นวัตถุท้องฟ้าสมมติที่เคลื่อนที่ด้วยความเร็วคงที่ตามเส้นศูนย์สูตรของโลก แทนอัตราเฉลี่ยของการหมุนของโลก
ลักษณะของเวลาสุริยะเฉลี่ย:
-
ความคงที่: เวลาสุริยะเฉลี่ยสมมติว่าดวงอาทิตย์เคลื่อนที่บนทรงกลมท้องฟ้าด้วยความเร็วสม่ำเสมอทุกวัน ทำให้สามารถกำหนดเวลามาตรฐานที่แน่นอนสำหรับชีวิตประจำวันได้
-
หน่วยเวลาเท่ากัน: แต่ละวันของเวลาสุริยะเฉลี่ย (24 ชั่วโมง) มีความยาวคงที่ ในขณะที่ความยาวของวันตามเวลาสุริยะจริงจะแตกต่างกันเล็กน้อยเนื่องจากรูปร่างวงโคจรของโลกและความเอียงของแกนหมุน
-
สมการเวลา: ความแตกต่างระหว่างเวลาสุริยะจริงและเวลาสุริยะเฉลี่ยเรียกว่าสมการเวลา (Equation of Time) ซึ่งจะแตกต่างกันไปในแต่ละช่วงของปี โดยสูงสุดประมาณ 16 นาที
เวลาสุริยะเฉลี่ยมักถูกใช้เป็นพื้นฐานของระบบนาฬิกาสมัยใหม่ (เช่น เวลาท้องถิ่นและเวลาสากล) เนื่องจากให้มาตรฐานอ้างอิงเวลาที่เรียบง่ายและค่อนข้างแม่นยำ เวลาสุริยะเฉลี่ยในแต่ละท้องถิ่นสามารถปรับตามลองจิจูดท้องถิ่นเพื่อสะท้อนเวลามาตรฐานของพื้นที่นั้น
เปรียบเทียบสองสูตรคำนวณเวลาสุริยะเฉลี่ย
เราจะใช้พารามิเตอร์เดียวกันเพื่อเปรียบเทียบสองสูตรนี้ โดยคำนวณเวลาสุริยะเฉลี่ยของเมืองหนึ่ง (เช่น ฉงชิ่ง ลองจิจูดตะวันออก 106.55 องศา) โดยใช้เวลาอ้างอิงที่แตกต่างกัน (เวลาปักกิ่งและ UTC) สมมติว่าเวลาปักกิ่งคือ 17:58
พารามิเตอร์:
- เวลาปักกิ่ง: 17:58
- เวลา UTC: เวลาปักกิ่ง - 8 ชั่วโมง = 09:58
- ลองจิจูดท้องถิ่น: 106.55 องศา (เมืองฉงชิ่ง)
- ลองจิจูดมาตรฐาน (จีน): 120 องศา (ลองจิจูดอ้างอิงของเวลามาตรฐานจีน)
- ค่าชดเชยเขตเวลา: +8 ชั่วโมง (ฉงชิ่งอยู่ในเขตเวลา UTC+8)
1. สูตร 1: เวลาสุริยะเฉลี่ย = เวลาปักกิ่ง + [(ลองจิจูดท้องถิ่น - 120) × 4 นาที]
ขั้นตอนการคำนวณ:
- เวลาปักกิ่ง = 17:58
- ลองจิจูดท้องถิ่น = 106.55 องศา
- ลองจิจูดอ้างอิง = 120 องศา
- ค่าต่าง = 106.55 - 120 = -13.45 องศา
- ผลต่างเวลา = -13.45 องศา × 4 นาที/องศา = -53.8 นาที = -53 นาที 48 วินาที
- เวลาสุริยะเฉลี่ย = 17:58 - 53 นาที 48 วินาที ≈ 17:04:12
ผลลัพธ์:
เวลาสุริยะเฉลี่ย ≈ 17:04:12 (ตามเวลาปักกิ่ง)
2. สูตร 2: LMST (เวลาสุริยะเฉลี่ยท้องถิ่น) = UTC + (ลองจิจูดท้องถิ่น / 15) - ค่าชดเชยเขตเวลา
ขั้นตอนการคำนวณ:
- เวลา UTC = เวลาปักกิ่ง - 8 ชั่วโมง = 09:58
- ลองจิจูดท้องถิ่น = 106.55 องศา
- หารลองจิจูดด้วย 15: 106.55 / 15 ≈ 7.103 ชั่วโมง ≈ 7 ชั่วโมง 6 นาที
- ค่าชดเชยเขตเวลา = +8 ชั่วโมง (ฉงชิ่งอยู่ใน UTC+8)
- LMST = 09:58 + 7 ชั่วโมง 6 นาที - 8 ชั่วโมง
- LMST = 09:58 + 07:06 - 08:00 = 09:04
ผลลัพธ์:
LMST ≈ 09:04 (ตามเวลา UTC)
เปรียบเทียบ:
| สูตร | เวลาอ้างอิง | ผลลัพธ์ | คำอธิบาย |
|---|---|---|---|
| เวลาสุริยะเฉลี่ย = เวลาปักกิ่ง + [(ลองจิจูดท้องถิ่น - 120) × 4 นาที] | เวลาปักกิ่ง | 17:04:12 | เหมาะสำหรับสถานการณ์ในจีน ปรับตามเวลาปักกิ่ง |
| LMST = UTC + (ลองจิจูดท้องถิ่น / 15) - ค่าชดเชยเขตเวลา | เวลา UTC | 09:04 | สูตรทั่วไป ใช้ได้กับลองจิจูดและเขตเวลาทั่วโลก |
สรุป:
- สูตร 1 สมมติว่าคุณใช้เวลาปักกิ่งเป็นเกณฑ์ เหมาะสำหรับการคำนวณเวลาภายในจีนหรือเขตเวลา UTC+8 ง่ายแต่มีข้อจำกัด
- สูตร 2 ใช้เวลา UTCมาตรฐานสากล เหมาะสำหรับจัดการปัญหาเขตเวลาทั่วโลก มีความทั่วไปมากกว่า หากคุณต้องจัดการเวลาของประเทศหรือเขตเวลาที่แตกต่างกัน สูตรนี้เหมาะสมกว่า เราจะใช้สูตรนี้เป็นวิธีการคำนวณ
ขั้นตอนการคำนวณเวลาสุริยะจริง
- คำนวณเวลาสุริยะเฉลี่ยท้องถิ่น (Local Mean Solar Time, LMST): เวลาสุริยะเฉลี่ยท้องถิ่นคือเวลาสุริยะเฉลี่ยตามการหมุนของโลก ซึ่งเป็นการปรับแก้เวลามาตรฐานตามลองจิจูดอย่างง่าย
สูตร: LMST = UTC + (ลองจิจูดท้องถิ่น/15) - ค่าชดเชยเขตเวลา
-
UTC: เวลาสากลเชิงพิกัด
-
ลองจิจูดท้องถิ่น: เป็นองศา ลองจิจูดตะวันออกเป็นบวก ตะวันตกเป็นลบ
-
ค่าชดเชยเขตเวลา: เป็นชั่วโมง เขตเวลาตะวันออกเป็นบวก ตะวันตกเป็นลบ
-
คำนวณสมการเวลา (EoT): สมการเวลาสะท้อนความแตกต่างระหว่างเวลาสุริยะจริงกับเวลาสุริยะเฉลี่ยท้องถิ่น เกิดจากความเยื้องศูนย์ของวงโคจรโลกและความเอียงของแกนโลก สมการเวลาเปลี่ยนแปลงตามวันที่ สามารถประมาณได้ด้วยสูตร:
สูตรประมาณ: EoT = 9.87 * sin(2B) - 7.53 * cos(B) - 1.5 * sin(B)
โดยที่: B = 360 * (n - 81) / 365
-
n: คือวันที่ในปี (1 มกราคม = 1, 31 ธันวาคม = 365 หรือ 366)
-
EoT มีหน่วยเป็นนาที
-
คำนวณเวลาสุริยะจริง: นำสมการเวลามาบวกกับเวลาสุริยะเฉลี่ยท้องถิ่น
สูตร: TST = LMST + EoT/60
โดยที่ EoT ต้องแปลงเป็นชั่วโมง
ขั้นตอนโดยละเอียด:
สมมติว่าคุณต้องการคำนวณเวลาสุริยะจริงของปักกิ่ง โดยสมมติว่าเวลา UTC คือ 12:00 วันที่ 6 ตุลาคม 2024:
- เวลาสุริยะเฉลี่ยท้องถิ่น (LMST):
- ลองจิจูดปักกิ่งประมาณ 116.4 องศา
- เขตเวลาปักกิ่งคือ UTC+8
LMST = UTC + (ลองจิจูดท้องถิ่น / 15) - ค่าชดเชยเขตเวลา LMST = 12:00 + (116.4 / 15) - 8 = 12:00 + 7.76 - 8 = 11:46
-
คำนวณสมการเวลา (EoT):
-
สมมติวันที่ 6 ตุลาคม 2024 เป็นวันที่ 280 ของปี
B = 360 * (280 - 81) / 365 = 360 * 199 / 365 ≈ 196.38 องศา -
แทนค่าในสูตรสมการเวลา:
EoT = 9.87 * sin(2 * 196.38) - 7.53 * cos(196.38) - 1.5 * sin(196.38)คำนวณได้:EoT ≈ -10.5 นาที -
เวลาสุริยะจริง (TST):
TST = LMST + EoT/60 TST = 11:46 - 10.5/60 = 11:35:30
ตัวอย่างโค้ด (JavaScript)
คุณสามารถใช้ JavaScript หรือภาษาที่คล้ายกันเพื่อคำนวณเวลาสุริยะจริง ต่อไปนี้เป็นตัวอย่างง่ายๆ (ใช้ปลั๊กอินของ dayjs):
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
import dayOfYear from 'dayjs/plugin/dayOfYear';
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.extend(dayOfYear);
/**
* คำนวณเวลาสุริยะจริง (แสดงผลเป็นเวลาท้องถิ่น)
* @param {string|Date} date เวลามาตรฐานท้องถิ่นที่ป้อน (เช่น '2024-10-06 12:00:00' ระบุเขตเวลาด้วย timezoneStr)
* @param {number} longitude ลองจิจูด (ตะวันออกเป็นบวก ตะวันตกเป็นลบ) เช่น ปักกิ่ง 116.4
* @param {string} timezoneStr ชื่อเขตเวลา IANA เช่น 'Asia/Shanghai'
* @param {number} tzOffsetHours ค่าชดเชยเขตเวลา (ชั่วโมง) เช่น UTC+8 = 8
*/
function calculateTrueSolarTimeLocal(date, longitude, timezoneStr, tzOffsetHours) {
// 1) เวลามาตรฐานท้องถิ่น LST
const lst = dayjs.tz(date, timezoneStr);
// 2) ลองจิจูดมาตรฐาน LSTM = 15 * เขตเวลา
const LSTM = 15 * tzOffsetHours;
// 3) เวลาสุริยะเฉลี่ยท้องถิ่น LMST (แสดงเป็นเวลาบนนาฬิกาท้องถิ่น)
const deltaHours = (longitude - LSTM) / 15; // ชั่วโมง
const lmst = lst.add(deltaHours, 'hour');
// 4) สมการเวลา EoT (นาที)
const n = lmst.dayOfYear(); // วันที่ในปี (ใช้วันที่ท้องถิ่นก็เพียงพอ)
const Bdeg = (360 * (n - 81)) / 365;
const Brad = (Math.PI / 180) * Bdeg;
const EoT = 9.87 * Math.sin(2 * Brad) - 7.53 * Math.cos(Brad) - 1.5 * Math.sin(Brad); // นาที
// 5) เวลาสุริยะจริง TST (ยังคงแสดงเป็นเวลาบนนาฬิกาท้องถิ่น)
const tst = lmst.add(EoT, 'minute');
return tst.format('YYYY-MM-DD HH:mm:ss');
}
// ตัวอย่าง: 2024-10-06 12:00 (เวลามาตรฐานท้องถิ่น) ปักกิ่ง 116.4°E UTC+8
const result = calculateTrueSolarTimeLocal('2024-10-06 12:00:00', 116.4, 'Asia/Shanghai', 8);
console.log(result);
สรุป
- เวลาสุริยะจริง คือเวลาที่คำนวณตามตำแหน่งของดวงอาทิตย์ ซึ่งมีความแตกต่างจากเวลาสุริยะเฉลี่ย (เวลาท้องถิ่น)
- สมการเวลา (EoT) เป็นกุญแจสำคัญในการคำนวณความแตกต่างระหว่างเวลาสุริยะจริงและเวลาสุริยะเฉลี่ย
- สามารถใช้รหัสในการคำนวณเวลาสุริยะจริงตามลองจิจูดทางภูมิศาสตร์และเวลา UTC