Tech Help

Unix Timestamp segundo vs millisecond: bakit 1970 ang petsa

Kung ang Unix timestamp ay naging petsa malapit sa 1970, madalas segundo ang binasa bilang millisecond. Paano makilala ang unit.

Mabilis na sagot

Kung ang Unix timestamp ay nagbibigay ng petsa malapit sa 1970, madalas mali ang unit na ginamit sa pagbasa.

Karaniwang segundo ang Unix timestamp, habang millisecond naman ang Date sa JavaScript.

Ang modernong 10-digit timestamp ay madalas segundo; ang 13-digit ay madalas millisecond. Kung hindi magkatugma ang unit, maaaring kailangang i-multiply o i-divide sa 1,000.

Kini-convert mo ang timestamp at napunta ka sa Enero 1970. Bihira iyon dahil sira ang orasan. Binasa ang numero bilang millisecond samantalang segundo ang nakatago—o kabaligtaran.

Ano ang Unix timestamp?

Ang Unix timestamp ay nagsusukat ng oras mula sa Unix epoch: 1970-01-01 00:00:00 UTC. Karaniwang buong segundo. Ang parehong sandali ay maaari ring itago bilang millisecond (segundo × 1,000). Hindi nagsasabi ng unit ang numero mismo.

Segundo vs millisecond: 1,000× ang pagkakaiba

Isang segundo ay 1,000 millisecond. Ihambing ang 1720000000 sa 1720000000000. Kung segundo ang una at millisecond ang pangalawa, iisang sandali iyon. Basahin ang una bilang millisecond, at lulundag ang petsa papuntang 1970.

Ang mga UTC na ito ay kinalkula mula sa mga numero sa itaas, hindi hula.

Halaga Malamang na unit Kahulugan (UTC)
1720000000 Segundo Modernong petsa kung basahin bilang segundo: 2024-07-03 09:46:40 UTC
1720000000000 Millisecond Parehong sandali kung basahin bilang millisecond: 2024-07-03 09:46:40 UTC
1720000000 bilang millisecond Maling unit Petsa malapit sa 1970: 1970-01-20 21:46:40 UTC

Bakit 1970 ang timestamp ko?

Kung ang halaga sa segundo ay tinatrato bilang millisecond, 1,000 beses na mas maliit ang numero. Binibilang ng JavaScript ang maikling span pagkatapos ng Unix epoch, kaya 1970 ang petsa:

const seconds = 1720000000;

new Date(seconds);
// 1970-01-20 21:46:40 UTC

new Date(seconds * 1000);
// 2024-07-03 09:46:40 UTC

Ang 1970 na iyon ay epoch plus mga dalawang linggo. I-multiply ang segundo sa 1,000 bago ibigay sa Date.

  • SEGUNDO
  • 1720000000
  • MILLISECOND
  • 1720000000000
Iisang sandali: segundo × 1,000 = millisecond.
  • Halaga sa segundo
  • Maling tinatrato bilang millisecond
  • Petsa malapit sa 1970
Ang segundo na binasa bilang millisecond ay bumabagsak malapit sa Unix epoch.
Segundo o millisecond?

Kung malapit sa 1970 ang resulta, suriin muna ang unit ng timestamp bago ang time zone.

10 digit ba ay segundo at 13 digit ay millisecond?

Sa mga modernong petsa, madalas segundo ang 10 digit at millisecond ang 13. Mabilis iyon na palatandaan, hindi panuntunan sa validation. Nagbabago ang bilang ng digit ayon sa saklaw ng oras, at may API na gumagamit ng microsecond o nanosecond. Kumpirmahin ang unit sa dokumentasyon o sa petsang may saysay.

Bakit madalas itong nangyayari sa JavaScript

Sa JavaScript, ang numeric Date ay millisecond mula sa epoch. Maraming backend, database, at Unix tool ang nag-iimbak pa rin ng segundo. Ang pagpasa ng segundo diretso sa Date ay karaniwang bug:

const unixSeconds = 1720000000;

const wrong = new Date(unixSeconds);
const correct = new Date(unixSeconds * 1000);

Ang wrong ay malapit sa 1970 (1970-01-20 21:46:40 UTC). Ang correct ang modernong sandali (2024-07-03 09:46:40 UTC).

Ibang sistema, ibang unit

Maaaring segundo o millisecond ang ibang wika, API, at database. May gumagamit ng microsecond o nanosecond. Huwag ipagpalagay na laging iisang unit ang isang wika—basahin ang dokumentasyon. Kung nasa JSON ang numero, tinutulungan ng I-format at ikumpara ang JSON na basahin ang field; hindi pa rin nito sasabihin ang unit.

Paano malalaman kung anong unit ang timestamp ko?

Sundin ang mga check na ito nang sunod-sunod. Hindi sapat ang digit count lang.

  1. Suriin ang dokumentasyon ng API o database.
  2. Tingnan ang tinatayang bilang ng digit.
  3. Ihambing ang halaga sa makatwirang modernong timestamp.
  4. Subukan ang halaga bilang segundo at bilang millisecond.
  5. Tingnan kung may saysay ang resultang petsa.

Kung 1970 ang isang interpretasyon at pamilyar na petsa naman ang isa, unit mismatch ang dahilan.

Mga karaniwang pagkakamali sa Unix timestamp

  • Segundo na binasa bilang millisecond. Bumabagsak ang petsa papuntang 1970, tulad ng halimbawa.
  • Millisecond na binasa bilang segundo. Lumilundag ang petsa sa malayong hinaharap, o nabibigo ang conversion.
  • Pag-multiply ng 1,000 ng dalawang beses. Ang halagang millisecond na ang magiging napakalaki at ang petsa ay uusad ng mga siglo.
  • Pag-divide ng 1,000 ng dalawang beses. Liliit ulit ang segundo, at malapit na naman sa 1970.
  • Pagsisi sa time zone. Maaaring ilipat ng zone ang oras o araw sa kalendaryo. Hindi nito ginagawang 1970 ang modernong timestamp.
  • Pagturing sa naka-format na date string bilang Unix timestamp. Ang halaga tulad ng 2024-07-03T09:46:40Z ay hindi epoch number. I-parse bilang date string, hindi segundo.

Time zone ba ang sanhi ng 1970 problem?

Kadalasan, hindi. Maaaring baguhin ng time zone ang ipinapakitang orasan at, malapit sa hatinggabi, ang araw sa kalendaryo. Hindi nito ginagawang 1970 ang modernong Unix timestamp. Kung 1970 ang resulta, suriin muna ang segundo kontra millisecond.

I-convert at suriin ang Unix timestamp

Maaaring i-convert ng NEXNARA Converter ng petsa at oras ang Unix timestamp sa browser.

I-paste ang Unix segundo o millisecond, gamitin ang kasalukuyang timestamp, tingnan ang UTC at local time, mag-convert ng time zone, at mag-format ng petsa. Madalas ituring ng auto-detect ang 10 digit bilang segundo at 13 bilang millisecond; puwede mo pa ring piliin ang unit.

Ang conversion mismo ay sa browser. Hindi isinusumite ng tool na ito ang petsa o timestamp sa server ng NEXNARA. Gumagamit pa rin ng network ang ads at iba pang feature ng site; hiwalay iyon sa conversion.

Kailangan suriin ang Unix timestamp? Buksan ang Converter ng petsa at oras at ihambing ang segundo sa millisecond.

FAQ

Bakit 1970 ang Unix timestamp ko?

Madalas segundo ang binasa bilang millisecond. Tinatrato ng JavaScript ang mas maliit na numero, kaya kaagad pagkatapos ng 1970-01-01 00:00:00 UTC ang petsa. I-multiply ang segundo sa 1,000 at i-convert ulit.

Segundo ba o millisecond ang Unix timestamp?

Karaniwang segundo. Maraming web API at JavaScript Date ang gumagamit ng millisecond. Tingnan ang dokumentasyon. May sistema ring gumagamit ng microsecond o nanosecond.

Paano i-convert ang segundo papuntang millisecond?

I-multiply sa 1,000. Ang 1720000000 segundo ay 1720000000000 millisecond. Pabalik, i-divide sa 1,000.

Bakit millisecond ang Date sa JavaScript?

Ang numeric Date timestamp sa JavaScript ay millisecond mula sa Unix epoch. Kaya mali ang new Date(unixSeconds) kapag Unix segundo ang unixSeconds.

Laging segundo ba ang 10-digit timestamp?

Hindi. Sa mga modernong petsa madalas oo, at millisecond naman ang 13 digit. Ang digit count ay palatandaan, hindi tuntunin. Kumpirmahin sa dokumentasyon o sa petsang may saysay.

May time zone ba sa Unix timestamp?

Wala. Ang Unix timestamp ay isang sandali na binilang mula sa 1970-01-01 00:00:00 UTC. Nakaaapekto ang time zone sa pagpapakita, hindi sa numero mismo.