التاريخ والوقت عبارة عن دورات إلزامية لا يمكن تجاوزها في عملية البرمجة، ولحسن الحظ JavaScript
كائنًا مضمنًا التاريخ (التاريخ). من خلال هذا الكائن يمكننا إنشاء وتخزين وتعديل وقياس الوقت والطباعة وغيرها من العمليات الأساسية وهي إحدى الدورات المطلوبة لكل مبرمج JavaScript
.
هو نفس الكائنات العادية. يمكننا استخدام new Date()
لإنشاء كائن Date
، ويمكننا أيضًا تمرير بعض معلمات التهيئة أثناء الإنشاء.
بدون معلمات:
Let now = new Date()console.log(now)
نتائج تنفيذ التعليمات البرمجية هي كما يلي:
يؤدي هذا ببساطة إلى إخراج الوقت المحدد الذي يتم فيه تنفيذ الكود، وما يظهر هنا هو 2022年6月22日19点25份24秒
.
كائن تاريخ بمعلمات بالمللي ثانية، حيث يشير milliseconds
إلى عدد المللي ثانية منذ UTC+0 في 1 يناير 1970 (1 مللي ثانية = 1/1000 ثانية).
// أنشئ وقتًا، على سبيل المثال 1970.1.1 نقطة زمنية 0 مللي ثانية Let jan01_1970 = new Date(0) console.log(jan01_1970) // أنشئ وقتًا بعد 3 أيام من النقطة الزمنية 1.1 في عام 1970 (3 أيام * 24 ساعة * 3600 ثانية * 1000 مللي ثانية) دع jan04_1970 = التاريخ الجديد (3 * 24 * 3600 * 1000)
نتائج تنفيذ التعليمات البرمجية
Console.log(jan04_1970):
milliseconds
هو عدد المللي ثانية التي مرت منذ 00:00:00 في 1 يناير 1970، أو يطلق عليه الطابع الزمني .
الطابع الزمني هو تمثيل رقمي بسيط للتاريخ، وعادةً ما نستخدم new Date(milliseconds)
لإنشاء التاريخ. إذا كان لدينا بالفعل كائن Date
، فيمكننا استخدام date.getTime()
للحصول على الطابع الزمني المطابق للتاريخ.
ملحوظة:
الصين تقع في المنطقة 8، لذا فإن الوقت في المثال أعلاه ليس 00:00:00، بل 08:00:00،
الطابع الزمني ليس فقط عددًا صحيحًا، بل يمكن أيضًا أن يكون رقمًا سالبًا، على سبيل المثال:
//1969-12-31 00:00:00let dec31_1969 = new Date(-24 * 3600 * 1000)console.log(dec31_1969)
code نتيجة التنفيذ:
إذا كانيستخدم طابعًا زمنيًا في كل مرة يتم إنشاؤه فيها، فقد لا يكون ذلك مناسبًا، لأن حساب الطابع الزمني لا يزال صعبًا بعض الشيء.
يمكننا أيضًا استخدام سلسلة زمنية لإنشاء وقت، على سبيل المثال:
Let date = new Date('2022-06-22 00:00:00') console.log(date)
نتائج تنفيذ التعليمات البرمجية:
year
—— يجب أن يكون رقمًا مكونًا من أربعة أرقامmonth
[0,11]
, 0
يعني1
؛hours/minutes/sec/ms
- الافتراضي هو 0،على سبيل المثال:
Let date = new Date(2022,6,22,20,35,33)console.log(date)
نتائج تنفيذ التعليمات البرمجية:
يمكننا أيضًا تحديد عدد المللي ثانية:
Let date = new Date(2022,6,22,20,35,33,777)console.log(date)
إذا كان لدينا كائن Date
، فيمكننا تمرير الكائن المبني -في طريقة كائن Date
، احصل على جزء من الوقت، مثل السنة والشهر والتاريخ وما إلى ذلك.
على سبيل المثال، لدينا date
:
Let date = new Date(2022,5,22,20,35,33)
getFullYear()
يحصل على السنة، date.getFullYear()
يُرجع 2022
getMonth()
يحصل على الشهر، date.getMonth()
يُرجع 5
، وهو 6
؛getDate()
على تاريخ الشهر الحالي، وترجع date.getDate()
22
؛getDay()
على اليوم من الأسبوع الذي يعمل فيه الوقت الحالي date.getDay()
تُرجع date.getDay()
3
؛ملاحظة:
- التواريخ المذكورة أعلاه كلها تعتمد على التواريخ المحلية، على سبيل المثال، أنا في المنطقة الزمنية للصين،
- للحصول على السنة، يجب عليك استخدام
getFullYear
لإرجاعgetYear
المكونة من رقمين.
يمكننا أيضًا الحصول على الوقت في المنطقة الزمنية 0
، وهو توقيت UTC
، الموافق لـ getUTCFullYear()
و getUTCMonth()
و getUTCDay
وما إلى ذلك. فقط أدخل UTC
بعد get
.
على سبيل المثال:
Let date = new Date(2022,5,22,20,35,33)console.log(date.getHours(),date.getUTCHours())
نتائج تنفيذ التعليمات البرمجية:
ويمكن أيضًا أن نرى في الليل أن الفرق بين المنطقة الزمنية الصينية والمنطقة الزمنية 0
هو 8
ساعات.
getTime()
الطابع الزمني للتاريخ، ولا تحتوي الطريقة على وضع UTC
؛getTimezoneOffset()
فارق التوقيت بين المنطقة الزمنية المحلية والمنطقة الزمنية 0
، بالدقائق، ولا يوجد وضع UTC
يمكننا أيضًا ضبط التاريخ من خلال طريقة كائن Date
جزء معين من:
setFullYear(year, [month], [date])
يعين السنة (الشهر، اليوم)setMonth(month, [date])
يضبط الشهر (اليوم)setDate(date)
يعين التاريخ (يوم الشهر)setHours(hour, [min], [sec], [ms])
ضبط الساعات (دقيقة، ثانية، ميلي ثانية)setMinutes(min, [sec], [ms])
تعيين الدقائق (ثواني، ميلي ثانية)setSeconds(sec, [ms])
تعيين ثواني (ملي ثانية)setMilliseconds(ms)
تعيين ميلي ثانيةsetTime(milliseconds)
(استخدم عدد المللي ثانية منذ 1970-01-01 00:00:00 UTC+0
لتعيين التاريخ بأكمله)من بين الوظائف المذكورة أعلاه، فقط setTime()
ليس متغير UTC
.
يحتوي JavaScript
's Date
على وظيفة معايرة تلقائية، مما يوفر لنا راحة كبيرة في حساب الوقت.
على سبيل المثال:
Let date = new Date(2022,5,38)// لاحظ نتائج تنفيذ كود 38console.log(date) هنا
:
ومن نتائج التنفيذ نرى أن "38 يونيو 2022" لم يسبب خطأ في البرنامج، بل حول التاريخ إلى "8 يوليو 2022".
لقد أثبتت الحالة المذكورة أعلاه أنه في JavaScript
، سيتم تعيين التواريخ خارج النطاق تلقائيًا بواسطة كائن Date
. بهذه الطريقة، يمكننا استخدام كائن Date
لحساب التواريخ بشكل مريح للغاية.
على سبيل المثال، يمكننا جمع وطرح السنة والشهر واليوم في التاريخ:
Let date = new Date(2022,5,23)// الوقت الحالي هو 2022-6-23date.setDate(date.getDate() + 8)// احسب الوقت بعد ثمانية أيام
من نتائج تنفيذ كود console.log(date):
وبالمثل، يمكننا أيضًا استخدام التابع date.setSeconds()
لحساب التاريخ بالثواني.
Date
التاريخ هي نفس القيمة المرجعة لـ date.getTime()
، وهي قيمة بالمللي ثانية:
Let date = new Date()console.log(+date)
نتيجة تنفيذ الكود:
وبما أن جوهر الوقت هو رقم، فيمكننا أيضًا إجراء حسابات فرق التوقيت ms
(مللي ثانية).
على سبيل المثال:
Let date1 = new Date(2022,5,23)let date2 = new Date(2022,5,24)console.log(`فارق التوقيت هو ${date2-date1}ms`)
نتيجة تنفيذ التعليمات البرمجية هي :
إذا أردنا الحصول على الوقت الحالي، فالطريقة الأفضل هي استخدام طريقة Date.now()
. ستعيد هذه الطريقة الطابع الزمني للوقت الحالي دون إنشاء كائنات Date
إضافية، وهو أمر جيد لحمل الذاكرة وجمع البيانات المهملة، كما أن الكود أبسط.
على سبيل المثال:
Let begin = Date.now()for(let i = 1;i<100000;i++){ Let num = i * i * i;}let end = Date.now()console.log(`استهلاك الوقت ${end - begin}ms`)
نتائج تنفيذ التعليمات البرمجية:
يمكن لأسلوب Date.parse()
قراءة سلسلة تاريخ وتحويلها إلى طابع زمني، لكن يجب أن تتوافق السلسلة مع قواعد معينة: YYYY-MM-DDTHH:mm:ss.sssZ
.
YYYY-MM-DD
يتوافق مع年-月-日
T
ينتمي إلى المحددHH:mm:ss.sss
يتوافق مع时:分:秒.毫秒
Z
يمكن أن يكون منطقة زمنية بتنسيق +-hh:mm
. يمثل الحرف Z
UTC+0
سلسلة UTC+0 التي يمكن كتابتها بطرق مختصرة، على سبيل المثال: YYYY-MM-DD
, YYYY-MM
, YYYY
.
لإعطائك نصيحة صغيرة:
Let ms = Date.parse('2022-06-23T19:38:30.777+08:00')// الطابع الزمني Let date =تنفيذ كود
Date(ms)console.log(date) الجديد
نتيجة:
JavaScript
كائن Date
لمعالجة الوقت new Date()
Date
على العديد من الطرق العملية، ويمكننا الحصول على فترة زمنية معينةDate
تلقائيًا، ويمكننا ذلكDate.now()