Tech Help

Unix Timestamp վայրկյաններ vs միլիվայրկյաններ. ինչու է ամսաթիվը ցույց տալիս 1970

Եթե Unix timestamp-ը դառնում է 1970-ի մոտ ամսաթիվ, հաճախ վայրկյանները կարդացել են որպես միլիվայրկյաններ։ Ինչպես տարբերել միավորները։

Կարճ պատասխան

Եթե Unix timestamp-ը տալիս է 1970-ի մոտ ամսաթիվ, արժեքը հաճախ մեկնաբանվում է սխալ միավորով։

Unix timestamp-ները սովորաբար օգտագործում են վայրկյաններ, իսկ JavaScript Date-ը՝ սովորաբար միլիվայրկյաններ։

Ժամանակակից 10 նիշանոց timestamp-ը հաճախ վայրկյաններ է, 13 նիշանոցը՝ միլիվայրկյաններ։ Եթե միավորները չեն համընկնում, կարող է պետք լինել բազմապատկել կամ բաժանել 1000-ով։

Timestamp-ը վերածեցիք ամսաթվի և հայտնվեցիք 1970 թվականի հունվարին։ Ժամացույցը գրեթե երբեք կոտրված չէ։ Թիվը կարդացել են որպես միլիվայրկյաններ, թեև պահված էր վայրկյաններով—կամ հակառակը։

Ի՞նչ է Unix timestamp-ը։

Unix timestamp-ը չափում է ժամանակը Unix epoch-ից՝ 1970-01-01 00:00:00 UTC։ Սովորաբար օգտագործում է ամբողջ վայրկյաններ։ Նույն պահը կարելի է պահել նաև միլիվայրկյաններով (վայրկյաններ × 1000)։ Թիվն ինքը միավորը չի նշում։

Վայրկյաններ vs միլիվայրկյաններ. ×1000 տարբերություն

Մեկ վայրկյանը 1000 միլիվայրկյան է։ Համեմատեք 1720000000-ը 1720000000000-ի հետ։ Եթե առաջինը վայրկյաններ է, երկրորդը՝ միլիվայրկյաններ, դա նույն պահն է։ Առաջինը կարդացեք որպես միլիվայրկյաններ, և ամսաթիվը ցատկում է դեպի 1970։

Այս UTC արդյունքները հաշվարկված են վերևի թվերից, ոչ թե գուշակված։

Արժեք Հավանական միավոր Մեկնաբանություն (UTC)
1720000000 Վայրկյաններ Ժամանակակից ամսաթիվ որպես վայրկյաններ՝ 2024-07-03 09:46:40 UTC
1720000000000 Միլիվայրկյաններ Նույն պահը որպես միլիվայրկյաններ՝ 2024-07-03 09:46:40 UTC
1720000000 որպես միլիվայրկյաններ Սխալ միավոր Ամսաթիվ 1970-ի մոտ՝ 1970-01-20 21:46:40 UTC

Ինչու է իմ timestamp-ը ցույց տալիս 1970։

Եթե վայրկյանների արժեքը վերաբերվում է որպես միլիվայրկյաններ, թիվը 1000 անգամ փոքր է պահանջվածից։ JavaScript-ն այն ժամանակ հաշվում է միայն կարճ հատված Unix epoch-ից հետո, և ամսաթիվը մնում է 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

Այդ 1970 ամսաթիվը epoch է գումարած մոտ երկու շաբաթ։ Date-ին տալուց առաջ վայրկյանները բազմապատկեք 1000-ով։

  • ՎԱՅՐԿՅԱՆՆԵՐ
  • 1720000000
  • ՄԻԼԻՎԱՅՐԿՅԱՆՆԵՐ
  • 1720000000000
Նույն պահը՝ վայրկյաններ × 1000 = միլիվայրկյաններ։
  • Վայրկյանների արժեք
  • Սխալմամբ որպես միլիվայրկյաններ
  • Ամսաթիվ 1970-ի մոտ
Վայրկյանները որպես միլիվայրկյաններ կարդալիս ընկնում են Unix epoch-ի մոտ։
Վայրկյաննե՞ր, թե՞ միլիվայրկյաններ։

Եթե արդյունքը 1970-ի մոտ է, ստուգեք timestamp-ի միավորը ժամային գոտին ուսումնասիրելուց առաջ։

10 նիշը վայրկյաններ է, 13-ը՝ միլիվայրկյաննե՞ր։

Ժամանակակից ամսաթվերի համար 10 նիշը հաճախ վայրկյաններ է, 13-ը՝ միլիվայրկյաններ։ Սա արագ ակնարկ է, ոչ ստուգման կանոն։ Նիշերի քանակը փոխվում է ժամանակային միջակայքի հետ, և որոշ API-ներ պահում են միկրովայրկյաններ կամ նանովայրկյաններ։ Միավորը հաստատեք փաստաթղթով կամ իմաստ ունեցող ամսաթվով։

Ինչու է սա այդքան հաճախ պատահում JavaScript-ում

JavaScript-ում թվային Date-ը epoch-ից միլիվայրկյաններ է։ Շատ backend-ներ, տվյալների բազաներ և Unix գործիքներ դեռ պահում են վայրկյաններ։ Վայրկյանները ուղիղ Date-ին տալը հաճախակի սխալ է։

const unixSeconds = 1720000000;

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

wrong-ը 1970-ի մոտ է (1970-01-20 21:46:40 UTC)։ correct-ը ժամանակակից պահն է (2024-07-03 09:46:40 UTC)։

Այլ համակարգեր օգտագործում են այլ միավորներ

Այլ լեզուներ, API-ներ և բազաներ կարող են օգտագործել վայրկյաններ կամ միլիվայրկյաններ։ Ոմանք պահում են միկրովայրկյաններ կամ նանովայրկյաններ։ Մի ենթադրեք, որ լեզուն միշտ մեկ միավոր է օգտագործում—նայեք փաստաթղթին։ Եթե թիվը JSON-ում է, JSON ձևաչափում / Diff-ը դաշտը դարձնում է ընթեռնելի. միավորը դեռ չի ասի։

Ինչպե՞ս իմանամ, թե որ միավորն է իմ timestamp-ը։

Անցեք այս ստուգումներով հերթով։ Միայն նիշերի քանակը բավարար չէ։

  1. Նայեք API-ի կամ տվյալների բազայի փաստաթղթին։
  2. Նայեք նիշերի մոտավոր քանակին։
  3. Համեմատեք արժեքը հավանական ժամանակակից timestamp-ի հետ։
  4. Փորձեք արժեքը որպես վայրկյաններ և որպես միլիվայրկյաններ։
  5. Ստուգեք, թե արդյոք ստացված ամսաթիվն իմաստ ունի։

Եթե մեկ մեկնաբանությունը ընկնում է 1970, մյուսը՝ ճանաչելի ամսաթվի վրա, պատճառը միավորների անհամապատասխանությունն է։

Unix timestamp-ի հաճախակի սխալներ

  • Վայրկյանները որպես միլիվայրկյաններ։ Ամսաթիվը փլվում է դեպի 1970, ինչպես վերևի օրինակում։
  • Միլիվայրկյանները որպես վայրկյաններ։ Ամսաթիվը ցատկում է հեռու ապագա, կամ փոխակերպումը ձախողվում է։
  • 1000-ով երկու անգամ բազմապատկել։ Արդեն միլիվայրկյան եղած արժեքը դառնում է հսկա, և ամսաթիվը դարեր առաջ է գնում։
  • 1000-ով երկու անգամ բաժանել։ Վայրկյանների արժեքը նորից կրճատվում է, նորից 1970-ի մոտ։
  • Ժամային գոտուն մեղադրել։ Գոտին կարող է տեղաշարժել ժամեր կամ օրացույցի օրը։ Ժամանակակից timestamp-ը 1970 չի դարձնում։
  • Ձևաչափված ամսաթիվը Unix timestamp համարել։ Արժեքը, ինչպես 2024-07-03T09:46:40Z, epoch թիվ չէ։ Վերլուծեք որպես ամսաթիվ, ոչ որպես վայրկյաններ։

Ժամային գոտին առաջացնու՞մ է 1970-ի խնդիրը։

Սովորաբար ոչ։ Ժամային գոտին կարող է փոխել ցուցադրվող ժամացույցը և կեսգիշերին մոտ՝ օրացույցի ամսաթիվը։ Այն ժամանակակից Unix timestamp-ը 1970 չի դարձնում։ Եթե արդյունքը 1970 է, նախ ստուգեք վայրկյաններն ընդդեմ միլիվայրկյանների։

Փոխակերպել և ստուգել Unix timestamp

NEXNARA Ամսաթվի և ժամի փոխարկիչ-ը կարող է փոխակերպել Unix timestamp բրաուզերում։

Տեղադրեք Unix վայրկյաններ կամ միլիվայրկյաններ, օգտագործեք ընթացիկ timestamp-ը, տեսեք UTC և տեղական ժամը, փոխարկեք գոտիներ և ձևաչափեք ամսաթիվ։ Ինքնաբեր հայտնաբերումը հաճախ 10 նիշը համարում է վայրկյաններ, 13-ը՝ միլիվայրկյաններ. միավորը դեռ կարող եք ընտրել։

Ինքը փոխակերպումը կատարվում է ձեր բրաուզերում։ Այս գործիքը ամսաթվեր կամ timestamp-ներ չի ուղարկում NEXNARA սերվեր։ Գովազդներն ու կայքի այլ հատկությունները դեռ օգտագործում են ցանցը. դա առանձին է փոխակերպումից։

Պե՞տք է ստուգել Unix timestamp։ Բացեք Ամսաթվի և ժամի փոխարկիչ և համեմատեք վայրկյանները միլիվայրկյանների հետ։

FAQ

Ինչու է իմ Unix timestamp-ը ցույց տալիս 1970։

Հաճախ դրանք վայրկյաններ են, որոնք կարդացել են որպես միլիվայրկյաններ։ JavaScript-ը մշակում է շատ ավելի փոքր թիվ, ուստի ամսաթիվը նստում է 1970-01-01 00:00:00 UTC-ից անմիջապես հետո։ Վայրկյանները բազմապատկեք 1000-ով և նորից փոխակերպեք։

Unix timestamp-ները վայրկյաննե՞ր են, թե՞ միլիվայրկյաններ։

Սովորաբար վայրկյաններ։ Շատ վեբ API-ներ և JavaScript Date-ը օգտագործում են միլիվայրկյաններ։ Միշտ նայեք, թե ինչ է փաստաթղթավորում այդ համակարգը։ Ոմանք օգտագործում են միկրովայրկյաններ կամ նանովայրկյաններ։

Ինչպե՞ս վայրկյանները վերածել միլիվայրկյանների։

Բազմապատկեք 1000-ով։ 1720000000 վայրկյանը 1720000000000 միլիվայրկյան է։ Հակառակ ուղղությամբ բաժանեք 1000-ով։

Ինչու է JavaScript Date-ը օգտագործում միլիվայրկյաններ։

JavaScript-ում Date-ի թվային timestamp-ը սահմանված է որպես միլիվայրկյաններ Unix epoch-ից։ Այդ պատճառով new Date(unixSeconds)-ը սխալ է, երբ unixSeconds-ը Unix վայրկյաններ է։

10 նիշանոց timestamp-ը միշտ վայրկյաննե՞ր է։

Ոչ։ Ժամանակակից ամսաթվերի համար հաճախ այո, և 13 նիշը հաճախ միլիվայրկյաններ է։ Նիշերի քանակը ակնարկ է, ոչ կանոն։ Հաստատեք փաստաթղթով կամ իմաստ ունեցող ամսաթվով։

Unix timestamp-ը պարունակու՞մ է ժամային գոտի։

Ոչ։ Unix timestamp-ը պահ է՝ հաշված 1970-01-01 00:00:00 UTC-ից։ Գոտիները ազդում են ցուցադրման վրա, ոչ թե թվի վրա։