Converter ng Unix timestamp papuntang petsa
I-convert ang Unix timestamp sa mababasang petsa at oras — o ibalik ang kahit anong petsa sa Unix timestamp. Sinusuportahan ang segundo at millisecond.
Timestamp → Petsa
Petsa → Timestamp
Mga kaugnay na tool
Ano ang Unix timestamp?
Ang Unix timestamp, na tinatawag ding Unix time o POSIX time, ay ang bilang ng mga segundong lumipas mula noong 1970-01-01 00:00:00 UTC, na kilala bilang Unix epoch. Malawak itong ginagamit na pamantayan sa computing dahil inilalarawan nito ang isang punto sa oras bilang isang integer, kaya madali ang pag-iimbak, paghahambing, at mga operasyon sa oras.
Sa loob ng JavaScript, millisecond ang gamit, kaya ang Date.now() ay nagbabalik ng Unix timestamp na pinarami ng 1000. Maraming API, database, at backend system ang gumagamit ng seconds sa halip. Tumatanggap ang tool na ito ng alinman sa dalawang format at awtomatikong natutukoy kung seconds o milliseconds batay sa laki ng numerong inilagay mo.
Mga kapansin-pansing Unix timestamp
| Timestamp | Petsa (UTC) | Tala |
|---|---|---|
0 | 1970-01-01 00:00:00 | Unix epoch |
1,000,000,000 | 2001-09-09 01:46:40 | 1 bilyong segundo |
2,000,000,000 | 2033-05-18 03:33:20 | 2 bilyong segundo |
2,147,483,647 | 2038-01-19 03:14:07 | Problema ng taong 2038 (max 32-bit) |
Bakit 1970?
Pinili ang Unix epoch na Enero 1, 1970 dahil bahagi ito ng nakasanayan at bahagi rin ng praktikal na limitasyon. Nabuo ang Unix noong huling bahagi ng 1960s at unang bahagi ng 1970s sa Bell Labs. Kailangan ng mga developer ng isang kamakailan at “bilog” na panimulang petsa para sa representasyon ng oras. Sapat na kamakailan ang Enero 1, 1970 para maging praktikal at wala itong espesyal na teknikal na kahulugan — isa lang itong maginhawang pananda.
May ibang epoch date ang ibang sistema: ang Windows FILETIME epoch ay Enero 1, 1601; nagsimula ang GPS time noong Enero 6, 1980; at ang NTP epoch ay Enero 1, 1900. Kapag nagko-convert sa pagitan ng mga sistema, mahalagang alam ang epoch ng bawat isa.
Seconds vs milliseconds
Ang orihinal na Unix timestamp ay nasa seconds. Karamihan sa mga server-side language at system (Unix shell, time.time() ng Python, time() ng PHP, karamihan sa mga database) ay gumagamit ng seconds. Ang Date.now() at new Date().getTime() ng JavaScript ay nagbabalik ng milliseconds. Madalas itong maging pinagmumulan ng bug kapag ang JavaScript frontend ay nakikipag-usap sa backend API.
Ang Unix timestamp sa seconds ay karaniwang 10-digit na numero sa kasalukuyan (mga 1,700,000,000 noong 2023). Ang millisecond timestamp ay 13-digit. Natutukoy ng calculator kung anong format ang inilagay mo batay sa bilang ng digit at iko-convert ito nang naaayon.
Ang Year 2038 problem
Ang mga sistemang nag-iimbak ng Unix timestamps bilang signed 32-bit integer ay nakakapag-represent lang ng mga petsa hanggang 2,147,483,647 segundo pagkatapos ng epoch — na katumbas ng 03:14:07 UTC noong Enero 19, 2038. Pagkatapos ng sandaling iyon, mag-o-overflow ang 32-bit signed integer at magiging malaking negatibong numero, na magrerepresent ng petsa noong 1901.
Minsan itong tinatawag na "Y2K38" problem o Unix Millennium Bug. Hindi apektado ang modernong 64-bit system, dahil ang signed 64-bit integer ay makakapag-represent ng timestamps nang humigit-kumulang 292 bilyong taon. Gayunman, maaaring vulnerable pa rin ang mga embedded system, legacy database, at mas lumang 32-bit software. Maraming industriya — kabilang ang telecom, banking, at industrial control — ang patuloy na nagmi-migrate para matugunan ito.
Paano kunin ang kasalukuyang Unix timestamp
| Wika / environment | Command |
|---|---|
| JavaScript | Math.floor(Date.now() / 1000) |
| Python | import time; int(time.time()) |
| PHP | time() |
| Bash | date +%s |
| SQL (PostgreSQL) | EXTRACT(EPOCH FROM NOW())::int |
| SQL (MySQL) | UNIX_TIMESTAMP() |
| Go | time.Now().Unix() |
| Rust | SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs() |
Mga praktikal na gamit
Pagbuo ng API: Karaniwang gumagamit ang REST API ng Unix timestamps para sa created_at, updated_at, at mga field ng expiry ng token. Ang timestamp ay walang timezone at malinaw — hindi tulad ng formatted date string na umaasa sa locale at convention ng format.
Expiry ng token: Gumagamit ang JWT (JSON Web Tokens) ng Unix timestamps para sa exp (expiry) at iat (issued at) na claims. Mag-e-expire ang token kapag mas mataas na ang kasalukuyang timestamp kaysa sa exp value. Ang pagkalkula ng expiry — halimbawa, "mag-expire ito sa loob ng 24 oras" — ay nangangailangan ng pagdaragdag ng 86,400 segundo sa kasalukuyang timestamp.
Cache TTL: Kadalasang itinatakda ang cache expiry bilang Unix timestamp o bilang bilang ng seconds mula ngayon. Sa pag-debug ng cache issues, madalas kailangan mong i-convert ang naka-store na expiry timestamp sa mas nababasang petsa.
Pagsusuri ng log: Madalas may Unix timestamps ang mga server log. Ang pag-convert nito sa nababasang petsa ang unang hakbang para maitugma ang log entries sa mga pangyayaring nangyari sa totoong mundo.
Pag-iimbak sa database: Ang pag-iimbak ng timestamps bilang integer sa halip na formatted string ay nakakaiwas sa timezone conversion bugs at nagpapadali sa sorting, range query, at arithmetic. Ang query na "lahat ng record sa huling 7 araw" ay nagiging WHERE created_at > (NOW_UNIX - 604800).
