JavaScript دا يېزىلغان ھەر خىل قوللىنىشچان پروگراممىلار ئاساسەن مەلۇم ۋاقىت ياكى ۋاقىت بىلەن ئىشلەيدۇ. باشتا ، بۇ پەقەت ئىچكى قىسىمدىكى API بىلەنلا چەكلەنگەن. بۇ API ئاساسىي ئىقتىدارنى ئۆز ئىچىگە ئالىدۇ ، ئەمما قىلالايدىغانلىرى بىر قەدەر چەكلىك. Moment.js غا ئوخشاش ئۈچىنچى تەرەپ كۈتۈپخانىلىرى ، كېيىن Intl APIs ۋە يېڭى ۋاقىتلىق API قاتارلىق ئىچكى API لار ۋاقىت ۋە چېسلا بىلەن ئىشلەشكە تېخىمۇ چوڭ جانلىقلىق قوشىدۇ. دەقىقىلەرنىڭ قەد كۆتۈرۈشى ۋە يىقىلىشى Moment.js ۋاقىت ۋە چېسلا بىلەن ئىشلەشتە كۈچلۈك ئىقتىدارغا ئىگە JavaScript كۈتۈپخانىسى. ئۇ ئاساسىي چېسلا API دىكى ۋاقىت رايونىنى كونترول قىلىش قاتارلىق كەمتۈك ئىقتىدارلارنى ئۆز ئىچىگە ئالىدۇ ۋە نۇرغۇن ئورتاق مەشغۇلاتلارنى ئاددىيلاشتۇرىدۇ. پەيت چېسلا ۋە ۋاقىتنى فورماتلاش ئىقتىدارلىرىنىمۇ ئۆز ئىچىگە ئالىدۇ. ئۇ نۇرغۇن ئوخشىمىغان قوللىنىشچان پروگراممىلاردا كەڭ قوللىنىلىدىغان كۇتۇپخانىغا ئايلاندى. قانداقلا بولمىسۇن ، Moment نىڭمۇ مەسىلىلەردە نېسىۋىسى بار. ئۇ بىر چوڭ كۇتۇپخانا بولۇپ ، قوللىنىشچان پروگراممىنىڭ يۈرۈشلۈك چوڭلۇقىغا كۆرۈنەرلىك دەرىجىدە قوشالايدۇ. كۇتۇپخانا دەرەخ سىلكىنىشنى قوللىمىغاچقا (كۈتۈپخانىلارنىڭ ئىشلىتىلمىگەن قىسىملىرىنى ئۆچۈرۈۋېتەلەيدىغان زامانىۋى بولاقلارنىڭ ئالاھىدىلىكى) ، سىز پەقەت بىر ياكى ئىككى فۇنكسىيەنى ئىشلەتسىڭىزمۇ ، بارلىق Moment كۈتۈپخانىسى ئۆز ئىچىگە ئالىدۇ. Moment دىكى يەنە بىر مەسىلە ، ئۇ پەيدا قىلغان جىسىملارنىڭ ئۆزگىرىشچانلىقى. بىر دەقىقە ئوبيېكتىدىكى مەلۇم ئىقتىدارلارنى چاقىرىشنىڭ ئەكىس تەسىرى بار ھەمدە ئۇ جىسىمنىڭ قىممىتىنى ئۆزگەرتىدۇ. بۇ كۈتۈلمىگەن ھەرىكەت ياكى خاتالىقلارنى كەلتۈرۈپ چىقىرىدۇ. 2020-يىلى ، پەيتنى ساقلىغۇچىلار كۈتۈپخانىنى ئاسراش ھالىتىگە كەلتۈرۈشنى قارار قىلدى. ھېچقانداق يېڭى ئىقتىدار ئېچىش ئېلىپ بېرىلمايدۇ ، قوغدىغۇچىلار ئۇنى يېڭى تۈرلەرگە ئىشلىتىشكە قارشى تۇرۇشنى تەۋسىيە قىلىدۇ. باشقا JavaScript ۋاقىت كۈتۈپخانىلىرى بار ، مەسىلەن date-fns ، ئەمما شەھەردە يېڭى قويغۇچ بار ، API بىۋاسىتە JavaScript غا قۇرۇلدى: ۋاقىتلىق. ئۇ ئەسلىدىكى API API نىڭ تۆشۈكلىرىنى تولدۇرىدىغان شۇنداقلا Moment ۋە باشقا كۈتۈپخانىلاردا بايقالغان بىر قىسىم چەكلىمىلەرنى ھەل قىلىدىغان يېڭى ئۆلچەم. ۋاقىتلىق دېگەن نېمە؟ ۋاقىتلىق ECMAScript ئۆلچىمىگە قوشۇلغان يېڭى ۋاقىت ۋە چېسلا API بولۇپ ، زامانىۋى JavaScript نى بەلگىلەيدۇ. 20266-يىلى 3-ئايغىچە ، ئۇ TC39 جەريانىنىڭ 4-باسقۇچىغا (JavaScript تىلىغا تەكلىپ ۋە قوشۇمچە ماتېرىياللارنى نازارەت قىلىدىغان كومىتېت) يېتىپ كەلدى ، ھەمدە كېيىنكى نەشرىدىكى ECMAScript ئۆلچىمىگە كىرگۈزۈلىدۇ. ئۇ ئاللىقاچان بىر قانچە توركۆرگۈچتە يولغا قويۇلغان: Chrome 144+ ۋە Firefox 139+ ، Safari نىڭ پات يېقىندا ئەگىشىشىدىن ئۈمىد بار. قوللىمايدىغان توركۆرگۈچ ۋە Node.js ئۈچۈنمۇ كۆپ مىقداردا تولدۇرغىلى بولىدۇ. ۋاقىتلىق API ئادەتتە ۋاقىتقا ۋەكىللىك قىلىدىغان ئوبيېكتلارنى بارلىققا كەلتۈرىدۇ. بۇلار مەلۇم ۋاقىت رايونىدا پۈتۈن كۈنلۈك ۋە چېسلا تامغىسى بولالايدۇ ياكى ئۇلار ھېچقانداق ۋاقىت رايونى ياكى چېسلا ئۇچۇرى بولمىغان «تام سائەت» ۋاقتىنىڭ ئومۇمىي مىسالى بولالايدۇ. ۋاقىتلىقنىڭ بىر قىسىم ئاساسلىق ئىقتىدارلىرى:
چېسلا بار ياكى ۋاقتى بولمىغان ۋاقىت. ۋاقىتلىق ئوبيېكت مەلۇم بىر ۋاقىتتىكى مەلۇم ۋاقىتقا ، ياكى ھېچقانداق چېسلا ئۇچۇرى بولمىغان ۋاقىتقا ۋەكىللىك قىلالايدۇ. مۇئەييەن چېسلا ، ۋاقىت بولمىسا ، ۋەكىللىك قىلىشقا بولىدۇ. ۋاقىت رايونىنى قوللاش. ۋاقىتلىق جىسىملار ۋاقىت رايونىنى تولۇق بىلىدۇ ، ئوخشىمىغان ۋاقىت رايونىغا ئايلاندۇرغىلى بولىدۇ. پەيت ۋاقىت رايونىنىمۇ قوللايدۇ ، ئەمما ئۇ قوشۇمچە ۋاقىت رايونى كۈتۈپخانىسىنى تەلەپ قىلىدۇ. ئۆزگەرمەسلىك. ۋاقىتلىق جىسىم بارلىققا كەلگەندىن كېيىن ، ئۇنى ئۆزگەرتىشكە بولمايدۇ. ۋاقىت ھېسابلاش ياكى ۋاقىت رايونىنى ئۆزگەرتىش ئاساسىي ئوبيېكتنى ئۆزگەرتمەيدۇ. ئەكسىچە ، ئۇلار يېڭى ۋاقىتلىق جىسىم ھاسىل قىلىدۇ. 1 نى ئاساس قىلغان كۆرسەتكۈچ. چېسلا API (شۇنداقلا Moment بىلەن ئوخشاش) كەمتۈكلەرنىڭ ئورتاق مەنبەسى ئايلار نۆل كۆرسەتكۈچ. دېمەك ، ھەممىمىز رېئال تۇرمۇشتا چۈشەنگەندەك 1-ئاي بولماستىن ، 1-ئاي 0 ئاي. 1-كۆرسەتكۈچ ئارقىلىق ۋاقىتلىق تۈزىتىدۇ - 1-ئاي 1-ئاي. ئۇ توركۆرگۈچكە قۇرۇلدى. ۋاقىتلىق توركۆرگۈچنىڭ ئۆزىدىكى API بولغاچقا ، ئۇ پروگراممىڭىزنىڭ باغلانما چوڭلۇقىغا ھېچ نەرسە قوشمايدۇ.
شۇنىڭغا دىققەت قىلىش كېرەككى ، چېسلا API يوقالمايدۇ. ۋاقىتلىق بۇ API دىن ئۈستۈن تۇرسىمۇ ، ئۇ ئۆچۈرۈلمەيدۇ ياكى كەمسىتىلمەيدۇ. ئەگەر توركۆرگۈچلەر چېسلا API نى تۇيۇقسىز ئۆچۈرۈۋەتسە ، نۇرغۇن پروگراممىلار بۇزۇلىدۇ. بىراق ، ئېسىڭىزدە بولسۇنكى ، Moment ھازىر ئاسراش ھالىتىدىكى مىراس تۈرى ھېسابلىنىدۇ. ماقالىنىڭ قالغان قىسمىدا ، Moment ئاساسىدىكى كودنى يېڭى ۋاقىتلىق API غا يۆتكەشنىڭ بەزى «رېتسېپلىرى» نى كۆرۈپ ئۆتىمىز. قايتا پىششىقلاپ ئىشلەشنى باشلايلى! چېسلا ۋە ۋاقىت ئوبيېكتى قۇرۇش چېسلا ۋە ۋاقىتنى كونترول قىلىشتىن بۇرۇن ، بىز ئۇلارغا ۋەكىللىك قىلىدىغان ئوبيېكتلارنى بارلىققا كەلتۈرۈشىمىز كېرەك. نۆۋەتتىكى چېسلا ۋە ۋاقىتقا ۋەكىللىك قىلىدىغان بىر دەقىقە ئوبيېكتى قۇرۇش ئۈچۈن ، پەيت ئىقتىدارىنى ئىشلىتىڭ. const now = moment (); console.log (ھازىر); // دەقىقە <2026-02-18T21: 26: 29-05: 00>
ئېھتىياجغا ئاساسەن بۇ ئوبيېكتنى فورماتلىغىلى ياكى كونترول قىلغىلى بولىدۇ.
// UTC غا ئايلاندۇرۇش //ئاگاھلاندۇرۇش: بۇ Moment ئوبيېكتىنى ئۆزگەرتىپ UTC ھالىتىگە قويىدۇ! console.log (now.utc ()); // دەقىقە <2026-02-19T02: 26: 29Z>
// فورماتلانغان تىزمىنى بېسىڭ - ئۇنىڭ ھازىر UTC ۋاقتىنى ئىشلىتىۋاتقانلىقىغا دىققەت قىلىڭ console.log (now.format ('MM / DD / YYYY hh: mm: ss a')); // 02/19/2026 02:27:07 ئەتىگەن
دەقىقىلەرنى ئەستە تۇتۇشقا تىگىشلىك ئىش شۇكى ، بىر دەقىقە ئوبيېكتى ھەمىشە ۋاقىت ۋە چېسلا توغرىسىدىكى ئۇچۇرلارنى ئۆز ئىچىگە ئالىدۇ. ئەگەر سىز پەقەت ۋاقىت ئۇچۇرلىرى بىلەنلا ئىشلەشكە ئېھتىياجلىق بولسىڭىز ، بۇ ئادەتتە ياخشى ، ئەمما ئۇ كۈندۈزلۈك تېجەش ۋاقتى ياكى سەكرەش يىللىرى قاتارلىق ئەھۋاللاردا ئويلىمىغان ھەرىكەتلەرنى كەلتۈرۈپ چىقىرىدۇ ، بۇ ۋاقىت ۋاقىت ھېسابلاشقا تەسىر كۆرسىتىدۇ. ۋاقىتلىق تېخىمۇ جانلىق. سىز ۋاقىتلىق. ۋاقىتلىق ئوبيېكت قۇرۇش ئارقىلىق نۆۋەتتىكى چېسلا ۋە ۋاقىتقا ۋەكىللىك قىلىدىغان ئوبيېكت قۇرالايسىز. بۇ «دەۋر» دىن كېيىنكى ۋاقىت (1970-يىلى 1-يانۋار UTC يېرىم كېچىدە) بەلگىلىگەن ۋاقىتقا ۋەكىللىك قىلىدۇ. ۋاقىتلىق نانو سېكۇنتلۇق ئېنىقلىق بىلەن بۇ پەيتنى ۋاقتىدا پايدىلىنالايدۇ. const now = Temporal.Now.instant ();
// دەۋردىن باشلاپ خام نانو سېكۇنتنى كۆرۈڭ console.log (now.epochNanoseconds); // 1771466342612000000n
// UTC نىڭ فورماتى console.log (now.toString ()); // 2026-02-19T01: 55: 27.844Z
// مەلۇم ۋاقىت رايونىنىڭ فورماتى console.log (now.toString ({timeZone: 'America / New_York'})); // 2026-02-18T20: 56: 57.905-05: 00
ۋاقىتلىق. تۇراقلىق ئۇسۇللار ئارقىلىق تۇراقلىق ئۇسۇل ئارقىلىق مەلۇم ۋاقىت ۋە چېسلا ئۈچۈنمۇ قۇرغىلى بولىدۇ.
const myInstant = Temporal.Instant.from ('2026-02-18T21: 10: 00-05: 00');
// يەرلىك ۋاقىت رايونىدىكى پەيتنى فورماتلاڭ. دىققەت ، بۇ پەقەت كونترول قىلىدۇ // فورماتلاش - ئۇ جىسىمنى moment.utc غا ئوخشاش ئۆزگەرتمەيدۇ. console.log (myInstant.toString ({timeZone: 'America / New_York'})); // 2026-02-18T21: 10: 00-05: 00
سىز باشقا ۋاقىتلىق جىسىملارنى قۇرالايسىز ، مەسىلەن:
ۋاقىتلىق. بايان ۋاقتى: ۋاقىت ئۇچۇرى يوق ۋاقىت. ۋاقىتلىق. ۋاقىت ۋاقتى: ۋاقىت ئۇچۇرى يوق ۋاقىت. ۋاقىتلىق. ZoneDateTime: مەلۇم ۋاقىت رايونىدىكى چېسلا ۋە ۋاقىت.
بۇلارنىڭ ھەر بىرىدە چېسلا ۋە / ياكى ۋاقىتنى بەلگىلەيدىغان ئوبيېكت بىلەن چاقىرىشقا بولىدىغان ئۇسۇل ياكى ۋاقىت جەدۋىلىنى تەھلىل قىلىشقا بولىدىغان ئۇسۇل بار. // پەقەت بىر كۈن const today = Temporal.PlainDate.from ({ يىل: 2026 ، ئاي: 2 ، // ئىزاھات بىز 2-ئاي ئۈچۈن ئىشلىتىۋاتىمىز كۈن: 18 }); console.log (today.toString ()); // 2026-02-18
// پەقەت بىر ۋاقىت const چۈشلۈك تاماق ۋاقتى = ۋاقىتلىق. PlainTime.from ({ سائەت: 12 }); console.log (چۈشلۈك تاماق ۋاقتى. ToString ()); // 12:00:00
// ئامېرىكىنىڭ شەرقىي ۋاقىت رايونىدىكى چېسلا ۋە ۋاقىت const dueAt = Temporal.ZonedDateTime.from ({ timeZone: 'America / New_York', يىل: 2026 ، ئاي: 3 ، كۈن: 1, سائەت: 12 ، مىنۇت: 0, ئىككىنچى: 0 }); console.log (dueAt.toString ()); // 2026-03-01T12: 00: 00-05: 00 [ئامېرىكا / يېڭى_ يورك]
Parsing بىز چېسلا ۋە ۋاقىت ئۇچۇرلىرىنىڭ پروگرامما تۈزۈلۈشىنى قاپلىدۇق. ئەمدى تەھلىل قىلىشقا قاراپ باقايلى. تەھلىل قىلىش بولسا ۋاقىتلىق ۋاقىتلىق API غا قارىغاندا تېخىمۇ جانلىق بولغان بىر ساھە. ۋاقىت خېتىنى ۋاقىت فۇنكىسىيەسىگە يەتكۈزۈش ئارقىلىق تەھلىل قىلالايسىز. بىرلا تالاش-تارتىش ئارقىلىق ، Moment ISO چېسلا تىزىمىنى ئۈمىد قىلىدۇ ، ئەمما ئىشلىتىلىۋاتقان چېسلا فورماتىنى بەلگىلەيدىغان ئىككىنچى دەلىل بىلەن تەمىنلىسىڭىز ، باشقا فورماتلارنى ئىشلىتەلەيسىز.
const isoDate = moment ('2026-02-21T09: 00: 00'); const formattedDate = moment ('2/21/26 9:00:00', 'M / D / YY h: mm: ss');
console.log (isoDate); // دەقىقە <2026-02-21T09: 00: 00-05: 00>
console.log (formattedDate); // دەقىقە <2026-02-21T09: 00: 00-05: 00>
كونا نەشىرلىرىدە ، Moment خالىغان شەكىلدىكى چېسلا تىزمىسىنى تەھلىل قىلىشنى ئەڭ ياخشى پەرەز قىلىدۇ. بۇ مۆلچەرلىگىلى بولمايدىغان نەتىجىنى كەلتۈرۈپ چىقىرىشى مۇمكىن. مەسىلەن ، 02-03-2026 2-فېۋرالمۇ ياكى 3-مارتمۇ؟ بۇ سەۋەبتىن ، يېڭى نۇسخىدىكى Moment ISO فورماتلانغان چېسلاسىز چاقىرىلسا كۆرۈنەرلىك كۆز قاراشنى كۆرسىتىدۇ (ئەگەر لازىملىق فورمات بىلەن ئىككىنچى تالاش-تارتىشمۇ بېرىلمىسە). ۋاقىتلىق پەقەت ئالاھىدە فورماتلانغان چېسلانى تەھلىل قىلىدۇ. بۇ تىزما چوقۇم ISO 8601 فورماتى ياكى ئۇنىڭ كېڭەيتىلگەن نۇسخىسى RFC 9557 غا ماس كېلىشى كېرەك. ئەگەر ماس كەلمەيدىغان چېسلا ئۇسۇلى ئۇسۇلدىن ئۆتۈپ كەتسە ، ۋاقىتلىق RangeError تاشلايدۇ.
// RFC 9557 چېسلا تىزمىسىنى ئىشلىتىش const myDate = ۋاقىتلىق. Instant.from ('2026-02-21T09: 00: 00-05: 00 [ئامېرىكا / يېڭى_ يورك]'); console.log (myDate.toString ({timeZone: 'America / New_York'})); // 2026-02-21T09: 00: 00-05: 00
// نامەلۇم چېسلانى ئىشلىتىش const otherDate = Temporal.Instant.from ('2/21/26 9:00:00'); // RangeError: ۋاقىتلىق خاتالىق: يىل قىممىتىنى تەھلىل قىلغاندا ئىناۋەتسىز.
چېسلا تىزمىسىنىڭ ئېنىق تەلىپى سىزنىڭ قايسى ۋاقىتلىق ئوبيېكت قۇرغانلىقىڭىزغا باغلىق. يۇقارقى مىسالدا Temporal.Instant تولۇق ISO تەلەپ قىلىدۇ8601 ياكى RFC 9557 چېسلا ۋاقىت چەكلىمىسى بىلەن چېسلا ۋە ۋاقىتنى بەلگىلەيدۇ ، ئەمما سىز پەقەت چېسلا فورماتىنىڭ بىر قىسمىنى ئىشلىتىپ PlainDate ياكى PlainTime ئوبيېكتلىرىنى قۇرالايسىز. const myDate = Temporal.PlainDate.from ('2026-02-21'); console.log (myDate.toString ()); // 2026-02-21
const myTime = Temporal.PlainTime.from ('09: 00: 00 '); console.log (myTime.toString ()); // 09:00:00
شۇنىڭغا دىققەت قىلىڭكى ، بۇ تىزمىلار يەنىلا مۆلچەردىكى فورماتقا ماس كېلىشى كېرەك ، بولمىسا خاتالىق تاشلىنىدۇ.
// ماس كەلمەيدىغان ۋاقىت تىزمىسىنى ئىشلىتىش. بۇلارنىڭ ھەممىسى RangeError نى تاشلايدۇ. Temporal.PlainTime.from ('9:00'); Temporal.PlainTime.from ('9:00:00 AM');
كۆرسەتمە: ISO بولمىغان سىزىقلارنى بىر تەرەپ قىلىش ۋاقىتلىق ۋاقىتلىق ئىشەنچلىكلىكنى ئالدىنقى ئورۇنغا قويغانلىقتىن ، ئۇ 02-01-2026 غا ئوخشاش بىر قۇرنىڭ شەكلىنى پەرەز قىلىشقا ئۇرۇنمايدۇ. ئەگەر سانلىق مەلۇمات مەنبەڭىز بۇ خىل تىزمىلارنى ئىشلەتسە ، سىز ۋاقتىنچە ئىشلىتىپ سىناپ بېقىشتىن بۇرۇن 2026-02-01 غا ئوخشاش قىممەتلەرنى ISO تىزمىسىغا قايتىدىن رەتكە تۇرغۇزۇشقا توغرا كېلىدۇ.
فورماتلاش بىر دەقىقە ياكى ۋاقىتلىق ئوبيېكت بولغاندىن كېيىن ، ئۇنى مەلۇم ۋاقىتتا فورماتلانغان تىزمىغا ئايلاندۇرماقچى بولۇشىڭىز مۇمكىن. بۇ دەقىقىلەر سەل تىركەشكەن مىسال. سىز لازىملىق ۋاقىت فورماتىنى تەسۋىرلەيدىغان بىر قاتار بەلگە بىلەن ئوبيېكتنىڭ فورمات ئۇسۇلىنى چاقىرىسىز. const date = moment ();
console.log (date.format ('MM / DD / YYYY')); // 02/22/2026
console.log (date.format ('MMMM Do YYYY, h: mm: ss a')); // 2026-يىل 2-ئاينىڭ 22-كۈنى ، كەچ سائەت 8:18:30
يەنە بىر جەھەتتىن ، ۋاقىتلىق سىزدىن بىر ئاز سۆزلۈك بولۇشنى تەلەپ قىلىدۇ. Instant غا ئوخشاش ۋاقىتلىق جىسىملارنىڭ toLocaleString ئۇسۇلى بار بولۇپ ، ئۇ جىسىمنىڭ خۇسۇسىيىتى سۈپىتىدە كۆرسىتىلگەن ھەر خىل فورمات تاللانمىلىرىنى قوبۇل قىلىدۇ.
const date = Temporal.Now.instant ();
// ھېچقانداق تالاش-تارتىش يوق ، نۆۋەتتىكى يەرلىكنىڭ سۈكۈتتىكى فورماتىغا ئېرىشىمىز console.log (date.toLocaleString ()); // 2/22/2026, 8:23:36 PM (en-US نىڭ يەرلىكلىكىنى پەرەز قىلساق)
// فورمات تاللانمىلىرىنى يوللاپ خاس فورمات تىزمىسى ھاسىل قىلىڭ console.log (date.toLocaleString ('en-US', {) ئاي: 'ئۇزۇن', day: 'numeric', يىل: 'رەقەملىك', سائەت: '2 خانىلىق', مىنۇت: '2 خانىلىق' })); // 2026-يىلى 2-ئاينىڭ 22-كۈنى سائەت 8:23 دە
// پەقەت فورمات تىزمىسىدا خالىغان ساھەدىن ئۆتۈڭ console.log (date.toLocaleString ('en-US', {) ئاي: 'قىسقا', كۈن: 'رەقەملىك' })); // 22-فېۋرال
ۋاقىتلىق چېسلا فورماتى ئەمەلىيەتتە ماتورنىڭ ئاستىدىكى Intl.DateTimeFormat API نى ئىشلىتىدۇ. يەنى سىز ئۆزىڭىزنىڭ فورماتلاش تاللانمىلىرى بىلەن قايتا ئىشلەتكىلى بولىدىغان DateTimeFormat ئوبيېكتىنى قۇرالايسىز ، ئاندىن ۋاقىتلىق ئوبيېكتلارنى ئۇنىڭ فورمات ئۇسۇلىغا يەتكۈزەلەيسىز. مۇشۇ سەۋەبتىن ، ئۇ Moment غا ئوخشاش ئىختىيارى ۋاقىت فورماتىنى قوللىمايدۇ. ئەگەر سىز «Q1 2026» ياكى باشقا مەخسۇس فورماتلاشقا ئوخشاش نەرسىگە ئېھتىياجلىق بولسىڭىز ، سىز مەلۇم ۋاقىت چېسلا فورماتلاش كودىغا ئېھتىياجلىق بولۇشىڭىز ياكى ئۈچىنچى تەرەپ كۈتۈپخانىغا يېتىشىڭىز مۇمكىن. const formatter = يېڭى Intl.DateTimeFormat ('en-US', { ئاي: '2 خانىلىق' ، كۈن: '2 خانىلىق' ، يىل: 'رەقەملىك' });
const date = Temporal.Now.instant (); console.log (formatter.format (چېسلا)); // 02/22/2026
دەقىقىلەرنىڭ فورماتلاش بەلگىسىنى يېزىش تېخىمۇ ئاددىي ، ئەمما ئۇلار يەرلىككە ماس كەلمەيدۇ. فورماتى ئاي / كۈن تەرتىپى قاتارلىق «قاتتىق كود» تىزىدۇ. Temporal غا ئوخشاش سەپلىمە ئوبيېكتىنى ئىشلىتىشنىڭ ئەۋزەللىكى شۇكى ، ئۇ ھەر قانداق بىر يەرلىك ئورۇنغا ئاپتوماتىك ماسلىشىدۇ ۋە توغرا فورماتنى ئىشلىتىدۇ. const date = Temporal.Now.instant ();
const formatOptions = { ئاي: 'رەقەملىك', day: 'numeric', يىل: 'رەقەملىك' };
console.log (date.toLocaleString ('en-US', formatOptions)); // 2/22/2026
console.log (date.toLocaleString ('en-GB', formatOptions)); // 22/02/2026
چېسلا ھېسابلاش نۇرغۇن قوللىنىشچان پروگراممىلاردا سىز بىر كۈندە بىر قىسىم ھېسابلاشلارنى تاماملىشىڭىز كېرەك. ۋاقىت بىرلىكى (كۈن ، سائەت ، سېكۇنت قاتارلىقلار) قوشۇش ياكى ئېلىشنى ئويلىسىڭىز بولىدۇ. مەسىلەن ، ئەگەر سىزدە ھازىرقى چېسلا بولسا ، ئىشلەتكۈچىلەرگە ۋاقىتنى 1 ھەپتىدىن باشلاپ كۆرسەتسىڭىز بولىدۇ. پەيتلىك جىسىملارنىڭ بۇ مەشغۇلاتلارنى قىلىدىغان قوشۇش ۋە ئېلىش قاتارلىق ئۇسۇللىرى بار. بۇ ئىقتىدارلار قىممەت ۋە بىرلىكنى ئالىدۇ ، مەسىلەن: قوشۇش (7 ، 'كۈن'). Moment بىلەن Temporal نىڭ ئىنتايىن مۇھىم بىر پەرقى شۇكى ، بۇ ۋاقىت ھېسابلاش ئېلىپ بارغاندا ، ئاستىدىكى ئوبيېكت ئۆزگەرتىلىپ ، ئەسلى قىممىتى يوقىلىدۇ. const now = moment ();
console.log (ھازىر); // دەقىقە <2026-02-24T20: 08: 36-05: 00>
const nextWeek = now.add (7, 'days'); console.log (nextWeek); // دەقىقە <2026-03-03T20: 08: 36-05: 00>
// گوتچا - ئەسلى جىسىم ئۆزگەرتىلگەن console.log (ھازىر); // دەقىقە <2026-03-03T20: 08: 36-05: 00>
ئەسلى چېسلانى يوقىتىپ قويۇشتىن ساقلىنىش ئۈچۈن ، Moment ئوبيېكتىدىكى كلونغا تېلېفون قىلىپ ، كۆپەيتمە قۇرالايسىز. const now= moment (); const nextWeek = now.clone (). add (7, 'days');
console.log (ھازىر); // دەقىقە <2026-02-24T20: 12: 55-05: 00>
console.log (nextWeek); // دەقىقە <2026-03-03T20: 12: 55-05: 00>
يەنە بىر جەھەتتىن ، ۋاقىتلىق جىسىملار ئۆزگەرمەيدۇ. سىز Instant ، PlainDate قاتارلىقلارغا ئوخشاش ئوبيېكتنى قۇرغاندىن كېيىن ، ئۇ جىسىمنىڭ قىممىتى ھەرگىز ئۆزگەرمەيدۇ. ۋاقىتلىق جىسىملارنىڭ قوشۇش ۋە ئېلىش ئۇسۇللىرىمۇ بار. ۋاقىتلىق قايسى ئوبيېكت تىپىغا قايسى ۋاقىت بۆلەكلىرىنى قوشقىلى بولىدىغانلىقى توغرىسىدا ئازراق تاللاش. مەسىلەن ، سىز بىر كۈنگە كۈن قوشالمايسىز:
const now = Temporal.Now.instant (); const nextWeek = now.add ({كۈن: 7}); // RangeError: ۋاقىتلىق خاتالىق: ئەڭ چوڭ ئورۇن چېسلا بىرلىكى بولالمايدۇ
چۈنكى شۇئان جىسىملار UTC دىكى مەلۇم بىر نۇقتىغا ۋەكىللىك قىلىدۇ ھەمدە كالېندار-ئاگنوتىك بولىدۇ. بىر كۈننىڭ ئۇزۇنلۇقى كۈندۈزلۈك تېجەش ۋاقتى قاتارلىق ۋاقىت رايونى قائىدىسىگە ئاساسەن ئۆزگىرىدۇ ، بۇ ھېسابلاشنى دەرھال ئىشلەتكىلى بولمايدۇ. سىز بۇ مەشغۇلاتنى باشقا تۈردىكى ئوبيېكتلاردا قىلالايسىز ، مەسىلەن PlainDateTime: const now = Temporal.Now.plainDateTimeISO (); console.log (now.toLocaleString ()); // 2/24/2026, 8:23:59 PM
const nextWeek = now.add ({كۈن: 7});
// شۇنىڭغا دىققەت قىلىڭكى ، ئەسلىدىكى PlainDateTime ئۆزگەرمەيدۇ console.log (now.toLocaleString ()); // 2/24/2026, 8:23:59 PM
console.log (nextWeek.toLocaleString ()); // 3/3/2026, 8:23:59 PM
سىز يەنە ئىككى دەقىقە ياكى ۋاقىتلىق جىسىمنىڭ قانچىلىك ۋاقىت ئىكەنلىكىنى ھېسابلاپ چىقالايسىز. Moment نىڭ پەرقلىق ئىقتىدارى بىلەن سىز دانچىلارنى بىرلىك بىلەن تەمىنلىشىڭىز كېرەك ، بولمىسا ئۇ مىللىي سېكۇنتتىكى پەرقنى قايتۇرىدۇ. const date1 = moment ('2026-02-21T09: 00: 00'); const date2 = moment ('2026-02-22T10: 30: 00');
console.log (date2.diff (date1)); // 91800000
console.log (date2.diff (date1, 'days')); // 1
بۇنى ۋاقىتلىق ئوبيېكت بىلەن قىلىش ئۈچۈن ، باشقا بىر ۋاقىتلىق ئوبيېكتنى ئۇنىڭغا ياكى ئۇسۇللارغىچە يەتكۈزەلەيسىز. بۇ ۋاقىت پەرقىگە مۇناسىۋەتلىك ئۇچۇرلارنى ئۆز ئىچىگە ئالغان ۋاقىتلىق ئوبيېكتنى قايتۇرىدۇ. Duration ئوبيېكتى پەرقنىڭ ھەر بىر تەركىبلىرىگە خاس خۇسۇسىيەتكە ئىگە ، شۇنداقلا ۋاقىت پەرقىنى ئىپادىلەيدىغان ISO 8601 ئۇزۇنلۇق لىنىيىسىنى ھاسىل قىلالايدۇ.
const date1 = Temporal.PlainDateTime.from ('2026-02-21T09: 00: 00'); const date2 = Temporal.PlainDateTime.from ('2026-02-22T10: 30: 00');
// largestUnit ۋەكىللىك قىلىدىغان ئەڭ چوڭ ۋاقىت بىرلىكىنى بەلگىلەيدۇ // ۋاقىت ھېسابلاشتا const diff = date2.since (date1, {largestUnit: 'day'});
console.log (diff.days); // 1
console.log (diff.hours); // 1
console.log (diff.minutes); // 30
console.log (diff.toString ()); // P1DT1H30M // (ISO 8601 داۋاملىشىش ۋاقتى: 1 كۈن ، 1 سائەت ، 30 مىنۇت)
چېسلا ۋە ۋاقىتنى سېلىشتۇرۇش پەيت ۋە ۋاقىتلىق ھەر ئىككىسى سىزنى چېسلا ۋە ۋاقىتنى سېلىشتۇرۇپ ، قايسىسىنىڭ ئالدىدىن كېلىدىغانلىقىنى ئېنىقلايدۇ ، ئەمما API بىلەن ئوخشىمىغان ئۇسۇللارنى قوللىنىدۇ. Moment isBefore, isAfter ۋە isSame قاتارلىق ئىككى خىل پەيتنى سېلىشتۇرۇشقا ئوخشاش ئۇسۇللار بىلەن تەمىنلەيدۇ. const date1 = moment ('2026-02-21T09: 00: 00'); const date2 = moment ('2026-02-22T10: 30: 00');
console.log (date1.isBefore (date2)); // true
ۋاقىتلىق تۇراقلىق سېلىشتۇرۇش ئۇسۇلىنى ئىشلىتىپ ئوخشاش تۈردىكى ئىككى جىسىمنى سېلىشتۇرۇش ئېلىپ بارىدۇ. ئەگەر بىرىنچى چېسلا ئىككىنچى كۈنىدىن بۇرۇن كەلسە -1 ، ئەگەر تەڭ بولسا 0 ، ياكى بىرىنچى چېسلا ئىككىنچىدىن كېيىن كەلسە 1 قايتىدۇ. تۆۋەندىكى مىسالدا ئىككى PlainDate ئوبيېكتىنى سېلىشتۇرۇش كۆرسىتىلدى. Temporal.PlainDate.compare غا ھەر ئىككى خىل تالاش-تارتىش چوقۇم PlainDate ئوبيېكتى بولۇشى كېرەك.
const date1 = Temporal.PlainDate.from ({يىل: 2026 ، ئاي: 2 ، كۈن: 24}); const date2 = Temporal.PlainDate.from ({يىل: 2026 ، ئاي: 3 ، كۈن: 24});
// date1 date2 دىن بۇرۇن كېلىدۇ ، شۇڭا -1 console.log (Temporal.PlainDate.compare (date1, date2));
// ئوخشىمىغان تىپتىكى ئىككى جىسىمنى سېلىشتۇرۇپ باقماقچى بولساق خاتالىق console.log (Temporal.PlainDate.compare (date1, Temporal.Now.instant ())); // TypeError: ۋاقىتلىق خاتالىق: ئىناۋەتسىز PlainDate ئېتىزلىرى تەمىنلەندى.
بولۇپمۇ بۇ بىر تۈركۈم ۋاقىتلىق جىسىملارنى ۋاقىت تەرتىپى بويىچە رەتلەشنى ئاسانلاشتۇرىدۇ. // ۋاقىتلىق سانلار گۇرپىسى const date = [...];
// Temporal.PlainDate.compare نى سېلىشتۇرۇش ئىقتىدارى قىلىپ ئىشلىتىڭ date.sort (Temporal.PlainDate.compare);
ۋاقىت رايونىنى ئۆزگەرتىش يادرولۇق پەيت كۈتۈپخانىسى ۋاقىت رايونىنىڭ ئۆزگىرىشىنى قوللىمايدۇ. ئەگەر بۇ ئىقتىدارغا ئېھتىياجلىق بولسىڭىز ، ۋاقىت ۋاقىت رايونى بولىقىنى ئورنىتىشىڭىز كېرەك. بۇ ئورالما دەرەخ تەۋرىتەلمەيدۇ ، شۇڭلاشقا باغلانما چوڭلۇقىڭىزغا كۆرۈنەرلىك قوشالايدۇ. ۋاقىت-ۋاقىت رايونىنى ئورناتقاندىن كېيىن ، tz ئۇسۇلى ئارقىلىق Moment ئوبيېكتلىرىنى ئوخشىمىغان ۋاقىت رايونىغا ئايلاندۇرالايسىز. باشقا Moment مەشغۇلاتلىرىغا ئوخشاش ، بۇمۇ تېگى-تەكتىنى ئۆزگەرتىدۇئوبيېكت. // ئامېرىكىنىڭ شەرق ۋاقتىنى پەرەز قىلساق const now = moment (); console.log (ھازىر); // دەقىقە <2026-02-28T20: 08: 20-05: 00>
// تىنچ ئوكيان ۋاقتىغا ئايلاندۇرۇش. // ئەسلى شەرق ۋاقتى يوقاپ كەتتى. now.tz ('America / Los_Angeles'); console.log (ھازىر); // دەقىقە <2026-02-28T17: 08: 20-08: 00>
ۋاقىت رايونىنىڭ ئىقتىدارى Temporal.ZonedDateTime ئوبيېكتىنى ئىشلەتكەندە ۋاقىتلىق API غا قۇرۇلدى. بۇ ئوبيېكتلار ئوخشاش بىر پەيتتە ، ئەمما بەلگىلەنگەن ۋاقىت رايونىدا يېڭى ZonedDateTime نى قايتۇرىدىغان TimeZone ئۇسۇلىنى ئۆز ئىچىگە ئالىدۇ. // يەنە كېلىپ ، ئامېرىكىنىڭ شەرق ۋاقتىنى پەرەز قىلساق const now = Temporal.Now.zonedDateTimeISO (); console.log (now.toLocaleString ()); // 28/2/2026, 8:12:02 PM EST
// تىنچ ئوكيان ۋاقتىغا ئايلاندۇرۇش const nowPacific = now.withTimeZone ('America / Los_Angeles'); console.log (nowPacific.toLocaleString ()); // 28/2/2026, 5:12:02 PM PST
// ئەسلى ئوبيېكت ئۆزگەرمەيدۇ console.log (now.toLocaleString ()); // 28/2/2026, 8:12:02 PM EST
ئەسكەرتىش: toLocaleString تەرىپىدىن قايتۇرۇلغان فورماتلانغان قىممەتلەر ، ئىسمىدىن مەلۇم بولغىنىدەك ، يەرلىككە باغلىق. ئەۋرىشكە كودى en-US رايونىدا ياسالغان ، شۇڭا فورماتى مۇنداق: 28/2/2026, 5:12:02 PM PST. باشقا بىر رايوندا بۇ ئوخشىماسلىقى مۇمكىن. مەسىلەن ، en-GB رايونىدا سىز 28/2/2026 ، 17:12:02 GMT-8 غا ئوخشاش نەرسىگە ئېرىشىسىز. ھەقىقىي دۇنيا رېئاكتورى ۋاقىت رايونىدا پائالىيەت ئورۇنلاشتۇرۇش ئۈچۈن بىر دېتال ياساۋاتىمىز دەپ پەرەز قىلايلى. بۇ ئەپنىڭ بىر قىسمى getEventTimes بولۇپ ، بۇ پائالىيەتنىڭ ۋاقتى ۋە ۋاقتى ، يەرلىك ۋاقىت رايونى ۋە نىشان ۋاقىت رايونىغا ۋەكىللىك قىلىدىغان ISO 8601 تىزمىسىنى ئالىدۇ. بۇ ئىقتىدار ھەر ئىككى ۋاقىت رايونىدا پائالىيەت ئۈچۈن فورماتلانغان ۋاقىت ۋە چېسلا قۇرلىرىنى ھاسىل قىلىدۇ. ئەگەر بۇ ئىقتىدارغا ئۈنۈملۈك ۋاقىت / چېسلا بولمىغان كىرگۈزۈش تىزمىسى بېرىلسە ، ئۇ خاتالىق سادىر قىلىدۇ. مانا بۇ ئەسلىدىكى ئەمەلىيلەشتۈرۈش ، Moment نى ئىشلىتىش (ۋاقىت-ۋاقىت بولىقىنى ئىشلىتىشنىمۇ تەلەپ قىلىدۇ).
'moment-timezone' دىن ئىمپورت قىلىش ۋاقتى
function getEventTimes (inputString, userTimeZone, targetTimeZone) { const timeFormat = 'MMM D, YYYY, h: mm: ss a z';
// 1. ئىشلەتكۈچىنىڭ ۋاقىت رايونىدا دەسلەپكى پەيتنى ھاسىل قىلىڭ const eventTime = moment.tz ( inputString, moment.ISO_8601, // ISO 8601 تىزمىسىنى ئۈمىد قىلىڭ true, // قاتتىق تەھلىل قىلىش userTimeZone );
// inputString ئىناۋەتلىك چېسلاغا ۋەكىللىك قىلمىسا خاتالىق تاشلاڭ if (! eventTime.isValid ()) { يېڭى خاتالىق تاشلاش ('ئىناۋەتسىز ۋاقىت / ۋاقىت كىرگۈزۈش'); }
// 2. نىشان ۋاقتىنى ھېسابلاپ چىقىڭ // تەنقىد: بىز چوقۇم كلونلىشىمىز كېرەك ، ياكى «ھادىسە ۋاقتى» مەڭگۈ ئۆزگىرىدۇ! const targetTime = eventTime.clone (). tz (targetTimeZone);
return { local: eventTime.format (timeFormat), target: targetTime.format (timeFormat), }; }
const جەدۋىلى = getEventTimes ( '2026-03-05T15: 00-05: 00', 'America / New_York', 'Europe / London', );
console.log (schedule.local); // 2026-يىلى 5-مارت ، چۈشتىن كېيىن سائەت 3:00:00 دە EST
console.log (schedule.target); // 2026-يىلى 5-مارت ، كەچ سائەت 8:00:00 دە
بۇ مىسالدا بىز ISO 8601 نىڭ مۆلچەرلەنگەن ۋاقىت فورماتىنى ئىشلىتىۋاتىمىز. بىز يەنە قاتتىق تەھلىل يۈرگۈزۈۋاتىمىز ، يەنى Moment فورماتقا ماس كەلمەيدىغان چېسلا بىلەن پەرەز قىلىشقا ئۇرۇنمايدۇ. ئەگەر ISO بولمىغان چېسلا تىزمىسى ئۆتۈپ كەتسە ، ئۇ ئىناۋەتسىز ۋاقىت ئوبيېكتىنى كەلتۈرۈپ چىقىرىدۇ ، بىز خاتالىق سادىر قىلىمىز. ۋاقىتلىق يولغا قويۇش قارىماققا ئوخشايدۇ ، ئەمما بىر قانچە ئاچقۇچلۇق پەرقى بار.
function getEventTimes (inputString, userTimeZone, targetTimeZone) { // 1. كىرگۈزۈشنى بىۋاسىتە بىر بۆلەككە بۆلۈپ ، ئاندىن قۇرۇڭ // ئىشلەتكۈچى رايونىدىكى ZonedDateTime. const instant = Temporal.Instant.from (inputString); const eventTime = instant.toZonedDateTimeISO (userTimeZone);
// 2. نىشان رايونىغا ئايلاندۇرۇش // بۇ ئاپتوماتىك ھالدا يېڭى ئوبيېكتنى قايتۇرىدۇ. 'eventTime' بىخەتەر. const targetTime = eventTime.withTimeZone (targetTimeZone);
// 3. Intl نى ئىشلىتىپ فورمات (ئىچىگە قاچىلانغان) const options = { يىل: 'رەقەملىك', ئاي: 'قىسقا', day: 'numeric', سائەت: 'رەقەملىك', مىنۇت: '2 خانىلىق', ئىككىنچى: '2 خانىلىق', timeZoneName: 'قىسقا' };
return { local: eventTime.toLocaleString (navigator.language, options), target: targetTime.toLocaleString (navigator.language, options) }; }
const جەدۋىلى = getEventTimes ( '2026-03-05T15: 00-05: 00', 'America / New_York', 'Europe / London', );
console.log (schedule.local); // 2026-يىلى 5-مارت ، 3:00:00 PM EST
console.log (schedule.target); // 2026-يىلى 5-مارت ، GMT 8:00:00 دە
دەقىقە بىلەن ، بىز ھاسىل بولغان چېسلانىڭ فورماتىنى ئېنىق بەلگىلىشىمىز كېرەك. ئىشلەتكۈچىنىڭ ئورنى ياكى يەرلىك بولۇشىدىن قەتئىينەزەر ، پائالىيەت ۋاقتى ھەمىشە 2026-يىلى 5-مارت ، 3:00:00 دە فورماتلىنىدۇ.pm EST. ئۇنىڭدىن باشقا ، بىز ئېنىق ھالدا بۇنىڭ سىرتىدا ئەمەس. ئەگەر ئىناۋەتسىز تىزما ۋاقىتلىق .Instant.from غا يەتكۈزۈلسە ، ۋاقىتلىق بىز ئۈچۈن بۇنىڭ سىرتىدا. دىققەت قىلىشقا تىگىشلىك بىر ئىش شۇكى ، قاتتىق تەھلىل قىلىش ئارقىلىقمۇ «Moment» نۇسخىسى يەنىلا مۇلايىم. ۋاقىتلىق سىزىقنىڭ ئاخىرىدىكى ۋاقىت رايونىنى تولۇقلاشنى تەلەپ قىلىدۇ. سىز شۇنىڭغا دىققەت قىلىشىڭىز كېرەككى ، بىز navigator.language نى ئىشلىتىۋاتقان بولغاچقا ، Node.js مۇھىتىدا يول باشلىغۇچى ئېنىقلانمىغاچقا ، بۇ كود پەقەت توركۆرگۈچ مۇھىتىدا ئىجرا بولىدۇ. ۋاقىتلىق يولغا قويۇش توركۆرگۈچنىڭ نۆۋەتتىكى يەرلىك (navigator.language) نى ئىشلىتىدۇ ، شۇڭا ئىشلەتكۈچى شۇ ۋاقىتتىكى ۋاقىت شەكلىدە ئاپتوماتىك ھالدا پائالىيەت ۋاقتىنى فورماتلايدۇ. ئامېرىكىنىڭ يەرلىك رايونىدا ، بۇ 2026-يىلى 5-مارت ، چۈشتىن كېيىن سائەت 3:00:00 دە. قانداقلا بولمىسۇن ، ئىشلەتكۈچى لوندوندا بولسا ، پائالىيەت ۋاقتى 2026-يىلى 5-مارت ، 15:00:00 GMT-5 قىلىپ فورماتلىنىدۇ. خۇلاسە
ھەرىكەت Moment.js ۋاقىتلىق نۆۋەتتىكى ۋاقىت moment () Temporal.Now.zonedDateTimeISO () ISO نى تەھلىل قىلىش moment (str) Temporal.Instant.from (str) ۋاقىت قوشۇڭ .add (7, 'days') (mutates) .add ({كۈن: 7}) (يېڭى ئوبيېكت) پەرقى .diff (باشقا ، 'سائەت') .since (other) .hours ۋاقىت رايونى .tz ('رايون / ئىسىم') .withTimeZone ('رايون / ئىسىم')
بىر قاراشتىلا ، پەرق سەل ئوخشىماسلىقى مۇمكىن (ۋاقىتلىق ئەھۋالغا كەلسەك ، بەزىدە تېخىمۇ كۆپ سۆزلۈك ۋە تېخىمۇ قاتتىق) گرامماتىكىسى ، ئەمما Moment.js دىن ۋاقىتلىق ئىشلىتىشنىڭ بىر قانچە مۇھىم ئەۋزەللىكى بار:
تېخىمۇ ئېنىق بولۇش ھەيران قالارلىق ۋە ئويلىمىغان كەمتۈكلەرنى كۆرسىتىدۇ. دەقىقىلەر قارىماققا تېخىمۇ مۇلايىمدەك قىلسىمۇ ، ئەمما ئۇ «پەرەز قىلىش» نى ئۆز ئىچىگە ئالىدۇ ، بۇ بەزىدە خاتا ۋاقىتنى كەلتۈرۈپ چىقىرىدۇ. ئەگەر ۋاقىتلىق بىر نەرسە ئىناۋەتسىز بولسا ، ئۇ خاتالىق سادىر قىلىدۇ. ئەگەر كود ئىجرا بولسا ، ئىناۋەتلىك ۋاقتىڭىزغا ئېرىشكەنلىكىڭىزنى بىلىسىز. دەقىقە قوللىنىشچان پروگراممىنىڭ بوغچىسىغا كۆرۈنەرلىك چوڭلۇق قوشالايدۇ ، بولۇپمۇ سىز ۋاقىت رايونى بولىقىنى ئىشلىتىۋاتقان بولسىڭىز. ۋاقىتلىق ھېچنېمە قوشمايدۇ (نىشان توركۆرگۈڭىزگە ئەۋەتىلگەندىن كېيىن). ئۆزگەرمەسلىك سىزگە ۋاقىت ئۆزگەرتىش ۋە مەشغۇلات قىلغاندا سانلىق مەلۇماتنى ھەرگىز قولدىن بېرىپ قويمايسىز ياكى قاپلىۋەتمەيدىغانلىقىڭىزغا ئىشەنچ ئاتا قىلىدۇ. ۋاقىتنىڭ ئوخشىمىغان ئىپادىلىنىشى (Instant, PlainDateTime, ZonedDateTime) سىزنىڭ تەلىپىڭىزگە ئاساسەن ، Moment ھەمىشە UTC ۋاقىت جەدۋىلىنى ئوراپ تۇرىدۇ. ۋاقىتلىق ۋاقىت فورماتى ئۈچۈن Intl API لىرىنى ئىشلىتىدۇ ، يەنى بەلگە ئېنىق بەلگىلىمىسىڭىزمۇ يەرلىككە ماس كېلىدىغان فورماتقا ئىگە بولالايسىز.
Polyfill دىكى خاتىرىلەر يۇقىرىدا دەپ ئۆتكىنىمىزدەك ، ۋاقىتلىق پولىفىل بار ، @ js-temporal / polyfill دەپ ئاتىلىدىغان npm بولىقى سۈپىتىدە تارقىتىلىدۇ. ئەگەر بۈگۈن ۋاقىتلىق ئىشلەتمەكچى بولسىڭىز ، بۇ API نى تېخى API ئەۋەتمىگەن Safari غا ئوخشاش توركۆرگۈچلەرنى قوللىشىڭىز كېرەك. بۇنىڭدىكى شۇم خەۋەر شۇكى ، ئۇ سىزنىڭ باغلىنىشىڭىزغا قوشىدۇ. خۇشخەۋەر شۇكى ، ئۇ يەنىلا ۋاقىت ياكى ۋاقىت رايونىدىن كۆرۈنەرلىك ئاز. بۇ يەردە Bundlephobia.com خەۋەر قىلغان توپلامنىڭ چوڭ-كىچىكلىكىنى سېلىشتۇرۇش ، npm بوغچا چوڭلۇقى توغرىسىدىكى ئۇچۇرلارنى تەمىنلەيدىغان تور بېكەت (ھەر بىر بولاق نامىنى چېكىپ ، Bundlephobia تەھلىلىنى كۆرۈڭ):
بوغچا Minified Minified & gzipped @ js-temporal / polyfill 154.1 kB 44.1 kB moment 294.4 kB 75.4 kB moment-timezone 1 MB 114.2 kB
پولىفىلنىڭ تارىختا ئەستە ساقلاشنى چۆرىدىگەن ھالدا بىر قىسىم ئىقتىدار مەسىلىسى بار بولۇپ ، يېزىلغان ۋاقىتتا ئۇ ئالفا ھالەتتە دەپ قارىلىدۇ. بۇ سەۋەبتىن ، سىز ئۇنى پىشقان ھالەتكە كەلگۈچە ئىشلەپچىقىرىشتا ئىشلىتىشنى خالىماسلىقىڭىز مۇمكىن. يەنە بىر خۇشخەۋەر شۇكى ، پولىفىلنىڭ ئۇزۇنراق لازىم بولماسلىقىنى ئۈمىد قىلىمىز (ئەلۋەتتە كونا توركۆرگۈچلەرنى قوللىمىسىڭىز). يېزىلغان ۋاقىتتا ، ۋاقىتلىق Chrome ، Edge ۋە Firefox غا توشۇلغان. گەرچە ئۇ ئەڭ يېڭى تېخنىكا ئالدىن كۆرۈش پروگراممىسىدا ئىجرا ۋاقتى باردەك قىلسىمۇ ، ئەمما سافارىدا تېخى تولۇق تەييار ئەمەس.