"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكنني تحويل السلاسل إلى كائنات التاريخ في JavaScript بشكل موثوق؟

كيف يمكنني تحويل السلاسل إلى كائنات التاريخ في JavaScript بشكل موثوق؟

تم النشر بتاريخ 2024-12-22
تصفح:203

How Can I Convert Strings to Date Objects in JavaScript Reliably?

تحويل السلاسل إلى كائنات التاريخ في JavaScript

تتضمن العديد من السيناريوهات في تطوير البرامج العمل مع التواريخ والأوقات. في JavaScript، أثناء إنشاء التواريخ، غالبًا ما يكون من الضروري تحويل سلسلة تمثل تاريخًا إلى كائن تاريخ. فيما يلي كيفية تحقيق هذا التحويل:

الطريقة الموصى بها لتحليل السلسلة هي استخدام تنسيق ISO مع مُنشئ كائن التاريخ. على سبيل المثال:

var st = "2023-05-09";
var dt = new Date();
var dt_st = new Date(st); // dt_st is a Date object in the same format as dt.

ومع ذلك، فإن مجرد استخدام تنسيق ISO غير كافٍ للتحليل الموثوق. يمكن تفسير السلاسل على أنها UTC أو التوقيت المحلي (اعتمادًا على اختلافات المتصفح). لضمان الاتساق، يُنصح بتخزين التواريخ بالتوقيت العالمي المنسق (UTC) وإجراء العمليات الحسابية بهذا التنسيق أيضًا.

لتحليل التواريخ بالتوقيت العالمي المنسق (UTC)، قم بإلحاق "Z" بالسلسلة. على سبيل المثال: new Date('2021-04-11T10:20:30Z')

لعرض التاريخ بالتوقيت المحلي، استخدم .toUTCString()، بينما يمكن استخدام .toString() لعرض التاريخ بالتوقيت العالمي المنسق.

للتوافق مع الإصدارات الأقدم من Internet Explorer (أقل من 9)، فكر في تقسيم سلسلة التاريخ والوقت إلى مكونات وتهيئة كائن التاريخ مع تلك الأجزاء. على سبيل المثال:

new Date('2011', '04' - 1, '11', '11', '51', '00') 
// Note: the month value must be 1 less than the actual month index (0-based).

هناك خيار آخر وهو استخدام مكتبات مثل Moment.js، والتي تقدم ميزات مثل تحليل التاريخ مع مواصفات المنطقة الزمنية.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3