`Date` na Bagay
Ipinaliwanag ng artikulong ito ang tungkol sa Date na bagay.
Ipapaliwanag namin ang Date na bagay hakbang-hakbang, mula sa batayang mekanismo hanggang sa mga karaniwang ginagamit na operasyon sa aktuwal na trabaho, gamit ang mga kongkretong halimbawa.
YouTube Video
Date na Bagay
Ano ang Date na bagay?
Ang JavaScript Date na object ay pamantayang gamit para sa paghawak ng petsa at oras. Sa loob ng sistema, pinangangasiwaan nito ang petsa at oras batay sa bilang ng mga millisecond mula Enero 1, 1970, 00:00:00 UTC.
Una, gumawa tayo ng isang Date object na kumakatawan sa kasalukuyang petsa at oras, at tingnan ang nilalaman nito.
1const now = new Date();
2console.log(now);- Ang code na ito ay lumilikha ng
Dateobject na kumakatawan sa kasalukuyang petsa at oras sa oras ng pagsasagawa. Ang format ng pagpapakita ay nakadepende sa kapaligiran ng pagsasagawa, gaya ng browser o OS.
Paano gumawa ng Date na bagay
Ang Date na mga bagay ay maaaring gawin sa iba't ibang paraan, depende sa iyong pangangailangan. Isang mahalagang punto na madaling magkamali ay ang buwan sa constructor ay nagsisimula sa zero, ibig sabihin, ang mga buwan ay mula 0.
1const d1 = new Date(); // Current date and time
2const d2 = new Date("2025-01-01"); // Create from an ISO date string
3const d3 = new Date(2025, 0, 1); // January 1, 2025 (month is zero-based)
4const d4 = new Date(2025, 0, 1, 10, 30); // January 1, 2025, 10:30
5
6console.log(d1, d2, d3, d4);- Sa
new Date(year, month, day), angmonthay nangangahulugang0ay Enero at11ay Disyembre. Kung hindi mo nauunawaan ang espesipikasyong ito, maaari kang aksidenteng makalikha ng petsang may pagkakamali ng isang buwan, kaya't laging mag-ingat.
Pagkuha ng Bawat Elemento ng Petsa at Oras
Maaari mong kuhanin nang paisa-isa ang taon, buwan, araw, oras, at araw ng linggo mula sa isang Date object. Lahat ng getter methods ay nagbabalik ng numerong halaga.
1const date = new Date();
2
3console.log(date.getFullYear()); // Year
4console.log(date.getMonth()); // Month (0-based: 0 = January)
5console.log(date.getDate()); // Day of the month
6console.log(date.getHours()); // Hours
7console.log(date.getMinutes()); // Minutes
8console.log(date.getSeconds()); // Seconds
9console.log(date.getDay()); // Day of the week (0 = Sunday, 6 = Saturday)
- Gaya ng paglikha, mag-ingat din na ang
getMonth()ay zero-based din. Kapag ginagamit sa pagpapakita, karaniwan na magdagdag ng 1 para maitama ang halaga. - Ibinabalik ng
getDay()ang araw ng linggo bilang isang numero. Ang 0 ay kumakatawan sa Linggo, at ang 6 ay kumakatawan sa Sabado.
Pagbabago ng mga Petsa at Oras
Ang Date ay isang mutable na bagay, ibig sabihin ay maaari mong baguhin ang mga laman nito kalaunan. Kapaki-pakinabang ang katangiang ito, ngunit dapat kang mag-ingat sa hindi sinasadyang epekto.
Maaari mong gamitin ang mga set na pamamaraan para baguhin ang mga halaga ng isang umiiral na Date object.
1const date = new Date("2025-01-01");
2
3date.setFullYear(2026);
4date.setMonth(5); // June
5date.setDate(15);
6
7console.log(date);- Ang
setMonth()ay zero-based din. Ang orihinal na bagay mismo ang nababago.
Pagdaragdag at Pagbawas ng mga Petsa
Karaniwan ang magkwenta ng petsa gamit ang milliseconds o gamit ang setDate(). Para sa araw-araw na kalkulasyon, ang paggamit ng setDate() ay madaling maintindihan at ligtas.
1const date = new Date("2025-01-01");
2
3date.setDate(date.getDate() + 7);
4console.log(date);- Sa halimbawang ito, kinokwentang ang petsa 7 araw matapos ang tinukoy na petsa. Kahit lumampas sa bagong buwan, awtomatikong inaayos ito.
Pagkukumpara ng mga Date na Bagay
Maaaring ikumpara ang mga Date na bagay bilang mga numero. Ito ay dahil ikinukumpara ang panloob na halaga ng mga millisecond.
1const a = new Date("2025-01-01");
2const b = new Date("2025-01-10");
3
4console.log(a < b); // true
5console.log(a > b); // false
- Kung nais mong alamin ang ayos ng mga petsa, hindi mo na kailangang mag-convert pa. Maaari kang gumamit ng mga comparison operators nang direkta.
Paggamit ng Timestamps (Milliseconds)
Ang Date ay maaaring gawing numero at pabalik na kumakatawan sa milliseconds (timestamp). Ang format na ito ay madalas gamitin sa mga API o database integration.
1const now = Date.now();
2console.log(now);
3
4const date = new Date(now);
5console.log(date);- Ang
Date.now()ay nagbabalik ng kasalukuyang oras sa milliseconds. Napakagamit nito kapag nais mo i-imbak o ikumpara ang halaga bilang numero.
Pina-format ang mga Petsa Bilang Strings
Kapag ipinakita nang direkta ang isang Date, madalas ay hindi nito natutugunan ang iyong ninanais na format. Kaya naman, dapat mong i-format ito ayon sa iyong pangangailangan.
1const date = new Date("2025-01-01");
2
3const formatted = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
4console.log(formatted);- Sa manu-manong pag-format gaya nito, lubos mong makokontrol ang pagpapakita ng petsa. Sa aktuwal na gawain, madalas gumamit ng library para dito.
Pagkakaiba ng UTC at Lokal na Oras
Nagbibigay ang Date ng mga paraan upang gamitin ang lokal na oras at UTC. Mahalagang tama ang pagkaunawa sa kaibahang ito para sa server integration at internasyonal na compatibility.
1const date = new Date();
2
3console.log(date.getHours()); // Local time (hours)
4console.log(date.getUTCHours()); // UTC time (hours)
- Ang mga
getUTC*na paraan ay laging nagbabalik ng halaga ayon sa UTC. Maging maingat lalo na kapag gumagamit ng datos na tumatawid ng time zone.
Paalaala sa Paggamit ng mga Date na Bagay
Madaling gamitin ang Date, ngunit may ilang masalimuot din itong bahagi. Lalo na ang zero-based na buwan at ang kakayahan nitong magbago ay madalas nagdudulot ng bug.
Tingnan natin ang mga tiyak na halimbawa sa ibaba upang makita ang epekto na ang Date ay nababago.
1const original = new Date("2025-01-01");
2const copy = new Date(original);
3
4copy.setDate(10);
5
6console.log(original);
7console.log(copy);- Kung nais mong manatili ang orihinal na petsa at oras, laging gumawa ng kopya. Ang pag-alam lang sa puntong ito ay makakatulong upang maiwasan ang mga hindi inaasahang bug.
Mga dahilan kung bakit mahirap hawakan ang Date at mga pamantayan sa paggamit ng mga library
Ang Date object ay nagbibigay ng sapat na mga tampok bilang isang karaniwang function, ngunit may mga sitwasyon sa aktuwal na paggamit na mahirap itong gamitin. Kabilang sa mga karaniwang isyu ang buwan at araw ng linggo na nagsisimula sa zero, ang kalituhan sa pagitan ng lokal na oras at UTC, at ang katotohanang nababago ang object. Ang mga isyung ito ay maaaring magdulot ng mas maraming bug habang dumarami ang pagproseso ng petsa.
Ang Date ay sapat para sa simpleng pagkuha at paghahambing ng petsa, ngunit ang pagiging madaling basahin at panatilihin ng code ay bumababa kapag dumarami ang kalkulasyon o pag-format ng petsa.
Kung mayroon kang mga pangangailangang tulad ng mga sumusunod, maaaring gusto mong gumamit ng magagaan na date library gaya ng dayjs o date-fns.
- Kailangan mong malinaw na hawakan ang mga time zone
- Madalas kang kailangang magsagawa ng mga kalkulasyon ng petsa o pagitan
- Nais mong flexible na mabago ang display format
- Nais mong hawakan ang petsa at oras bilang hindi nababago
Buod
Ang mga Date na bagay ang pinaka-pundamental na gamit para sa paghawak ng petsa at oras sa JavaScript. Kung nauunawaan mo ang mga kakaiba nitong katangian at ginagawa nang tama ang paggawa, pagkuha, kalkulasyon, at pag-format, magagamit mo ito nang ligtas sa aktuwal na trabaho.
Matapos ma-master ang mga batayan, ang paggamit ng date libraries ayon sa pangangailangan ay praktikal na opsyon.
Maaari mong sundan ang artikulo sa itaas gamit ang Visual Studio Code sa aming YouTube channel. Paki-check din ang aming YouTube channel.