Tech Help

Unix Timestamp në sekonda kundrejt milisekondave: pse data tregon 1970

Nëse një Unix timestamp bëhet datë afër 1970, shpesh sekondat janë lexuar si milisekonda. Si t’i dalloni njësitë.

Përgjigje e shpejtë

Nëse një Unix timestamp jep datë afër 1970, vlera shpesh interpretohet në njësinë e gabuar.

Unix timestamp zakonisht përdorin sekonda, ndërsa Date në JavaScript zakonisht milisekonda.

Një timestamp modern me 10 shifra shpesh janë sekonda, me 13 shpesh milisekonda. Nëse njësitë nuk përputhen, mund të duhet të shumëzoni ose pjesëtoni me 1000.

E kthyet një timestamp në datë dhe përfunduat në janar 1970. Ora rrallë është e prishur. Numri u lexua si milisekonda ndërsa ishte ruajtur në sekonda—ose e kundërta.

Çfarë është një Unix timestamp?

Një Unix timestamp mat kohën nga Unix epoch: 1970-01-01 00:00:00 UTC. Zakonisht përdor sekonda të plota. I njëjti çast mund të ruhet edhe në milisekonda (sekonda × 1000). Vetë numri nuk shënon njësinë.

Sekonda kundrejt milisekondave: ndryshimi ×1000

Një sekondë është 1000 milisekonda. Krahasoni 1720000000 me 1720000000000. Nëse e para janë sekonda dhe e dyta milisekonda, është i njëjti çast. Lexoni të parën si milisekonda dhe data kërcen drejt 1970.

Këto rezultate UTC janë llogaritur nga numrat sipër, jo të hamendësuara.

Vlera Njësia e mundshme Interpretimi (UTC)
1720000000 Sekonda Datë moderne si sekonda: 2024-07-03 09:46:40 UTC
1720000000000 Milisekonda I njëjti çast si milisekonda: 2024-07-03 09:46:40 UTC
1720000000 si milisekonda Njësi e gabuar Datë afër 1970: 1970-01-20 21:46:40 UTC

Pse timestamp-i im tregon 1970?

Nëse një vlerë në sekonda trajtohet si milisekonda, numri është 1000 herë më i vogël se duhet. JavaScript atëherë numëron vetëm një interval të shkurtër pas Unix epoch, kështu data mbetet në 1970:

const seconds = 1720000000;

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

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

Ajo datë e 1970 është epoch plus rreth dy javë. Shumëzoni sekondat me 1000 para se t’ia jepni Date.

  • SEKONDA
  • 1720000000
  • MILISEKONDA
  • 1720000000000
I njëjti çast: sekonda × 1000 = milisekonda.
  • Vlerë në sekonda
  • Trajtuar gabimisht si milisekonda
  • Datë afër 1970
Sekonda të lexuara si milisekonda bien pranë Unix epoch.
Sekonda apo milisekonda?

Nëse rezultati është afër 1970, kontrolloni njësinë e timestamp para se të shikoni brezin orar.

A janë 10 shifra sekonda dhe 13 milisekonda?

Për datat e sotme, 10 shifra shpesh janë sekonda dhe 13 shpesh milisekonda. Është një shenjë e shpejtë, jo rregull vërtetimi. Numri i shifrave ndryshon me intervalin kohor dhe disa API ruajnë mikrosekonda ose nanosekonda. Konfirmoni njësinë me dokumentimin ose me një datë që ka kuptim.

Pse ndodh kaq shpesh në JavaScript

Në JavaScript një Date numerik janë milisekonda nga epoch. Shumë backend, baza dhe mjete Unix ende ruajnë sekonda. T’i japësh sekondat drejtpërdrejt Date është gabim i shpeshtë:

const unixSeconds = 1720000000;

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

wrong është afër 1970 (1970-01-20 21:46:40 UTC). correct është çasti modern (2024-07-03 09:46:40 UTC).

Sisteme të tjera përdorin njësi të ndryshme

Gjuhë, API dhe baza të tjera mund të përdorin sekonda ose milisekonda. Disa ruajnë mikrosekonda ose nanosekonda. Mos supozoni se një gjuhë përdor gjithmonë një njësi—shikoni dokumentimin. Nëse numri është në JSON, Formatim dhe krahasim JSON e bën fushën të lexueshme; njësinë prapë nuk e tregon.

Si ta di cilën njësi përdor timestamp-i im?

Kaloni këto kontrolle me radhë. Vetëm numri i shifrave nuk mjafton.

  1. Shikoni dokumentimin e API ose të bazës së të dhënave.
  2. Shikoni numrin e përafërt të shifrave.
  3. Krahasoni vlerën me një timestamp modern të besueshëm.
  4. Provoni vlerën si sekonda dhe si milisekonda.
  5. Kontrolloni nëse data e dalë ka kuptim.

Nëse një interpretim bie në 1970 dhe tjetri në një datë që e njihni, shkaku është mospërputhja e njësisë.

Gabime të zakonshme me Unix timestamp

  • Sekonda të interpretuara si milisekonda. Data shembet drejt 1970, si në shembullin sipër.
  • Milisekonda të interpretuara si sekonda. Data kërcen larg në të ardhmen, ose kthimi dështon.
  • Shumëzim me 1000 dy herë. Një vlerë që tashmë ishte milisekonda bëhet e madhe dhe data kërcen shekuj para.
  • Pjesëtim me 1000 dy herë. Një vlerë në sekonda tkurret sërish, sërish afër 1970.
  • Të fajësosh brezin orar. Brezin mund të zhvendosë orët ose ditën e kalendarit. Nuk e çon një timestamp modern në 1970.
  • Të trajtosh një datë të formatuar si Unix timestamp. Një vlerë si 2024-07-03T09:46:40Z nuk është numër epoch. Analizojeni si datë, jo si sekonda.

A e shkakton brezi orar problemin e 1970?

Zakonisht jo. Brezi orar mund të ndryshojë orën e shfaqur dhe, afër mesnatës, datën e kalendarit. Nuk e kthen një Unix timestamp modern në 1970. Nëse rezultati është 1970, kontrolloni së pari sekondat kundrejt milisekondave.

Ktheni dhe kontrolloni një Unix timestamp

NEXNARA Shndërrues date dhe ore mund të kthejë një Unix timestamp në shfletues.

Ngjitni sekonda ose milisekonda Unix, përdorni timestamp-in aktual, shihni UTC dhe orën vendore, ktheni breza orarë dhe formatoni një datë. Zbulimi automatik shpesh i trajton 10 shifrat si sekonda dhe 13 si milisekonda; njësinë prapë mund ta zgjidhni.

Vetë kthimi ndodh në shfletuesin tuaj. Ky mjet nuk dërgon data apo timestamp në një server NEXNARA. Reklamat dhe veçoritë e tjera të sajtit ende përdorin rrjetin; kjo është e ndarë nga kthimi.

Duhet të kontrolloni një Unix timestamp? Hapni Shndërrues date dhe ore dhe krahasoni sekondat me milisekondat.

FAQ

Pse Unix timestamp-i im tregon 1970?

Shpesh janë sekonda të lexuara si milisekonda. JavaScript trajton një numër shumë më të vogël, kështu data bie pak pas 1970-01-01 00:00:00 UTC. Shumëzoni sekondat me 1000 dhe ktheni sërish.

A janë Unix timestamp sekonda apo milisekonda?

Zakonisht sekonda. Shumë API ueb dhe Date në JavaScript përdorin milisekonda. Kontrolloni gjithmonë çfarë dokumenton ai sistem. Disa sisteme përdorin mikrosekonda ose nanosekonda.

Si t’i kthej sekondat në milisekonda?

Shumëzoni me 1000. 1720000000 sekonda janë 1720000000000 milisekonda. Në kahun tjetër pjesëtoni me 1000.

Pse Date në JavaScript përdor milisekonda?

Timestamp-i numerik i Date në JavaScript përcaktohet si milisekonda nga Unix epoch. Prandaj new Date(unixSeconds) është i gabuar kur unixSeconds janë sekonda Unix.

A është gjithmonë sekonda një timestamp me 10 shifra?

Jo. Për datat e sotme shpesh po, dhe 13 shifra shpesh janë milisekonda. Numri i shifrave është shenjë, jo rregull. Konfirmoni me dokumentim ose datë që ka kuptim.

A përmban një Unix timestamp brez orar?

Jo. Një Unix timestamp është një çast i numëruar nga 1970-01-01 00:00:00 UTC. Brezat orarë ndikojnë te shfaqja, jo te vetë numri.