چطور در جاوااسکریپت یک رشته را به تاریخ تبدیل کنیم؟
تجزیه یک رشته به یک Date در جاوااسکریپت میتواند با چالشهایی همراه باشد. فرمتهای مختلف تاریخ ممکن است باعث ایجاد مشکلاتی در تبدیل شوند، بهخصوص زمانی که ساعات محلی و زمان UTC مورد استفاده قرار گرفته باشند.
اگر رشته ما فرمت استاندار ISO باشد کار راحتی برای تبدیل در پیش داریم. فرمتهای ISO شامل YYYY-MM-DD
و YYYY-MM-DDTHH:MM:SS
هستند.
برای تبدیل یک تاریخ به صورت UTC، میتوانید حرف Z را به انتهای رشته اضافه کنید، مانند:
new Date('2011-04-11T10:20:30Z');
اگر میخواهید تاریخ را در فرمت UTC نمایش دهید، از متد .toUTCString()
و برای نمایش تاریخ در زمان محلی کاربر از .toString()
استفاده کنید.
در صورت نیاز به تبدیل از فرمت های اختصاصی یا برای سازگاری با نسخه های قدیمی تر مرورگر (مانند اینترنت اکسپلورر قبل از 9)، میتوانید رشته را به قسمت های تاریخ و زمان تقسیم کرده و مقادیر بدست آمده را به سازنده تاریخ پاس دهیم. این تقسیم را می توانیم بوسیله متد split یا بوسیله عبارات منظم انجام دهید. بهعنوان مثال:
new Date('2011', '04' - 1, '11', '11', '51', '00');
توجه داشته باشید که ماهها در جاوااسکریپت از 0 شروع میشوند (ژانویه - 0، فوریه - 1 و غیره).
همچنین میتوانید از کتابخانههایی مانند Moment.js استفاده کنید که امکان تجزیه تاریخ با ناحیه زمانی مشخص را فراهم میکند. اما نکته مهم این است که این کتابخانه دیگر پشتیبانی نمی شود.