از طریق منوی جستجو مطلب مورد نظر خود در وبلاگ را به سرعت پیدا کنید
نحوه تبدیل تاریخ به مهر زمانی در جاوا اسکریپت
سرفصلهای مطلب
معرفی
در برنامه نویسی، ما اغلب نیاز داریم که با تاریخ ها و زمان ها سر و کار داشته باشیم که می توانند به روش های مختلف مانند یک شی (از طریق Date
)، یک رشته (یعنی «1402-10-04T00:00:00.000Z»)، یا یک مهر زمانی (یعنی 1696377600000). در این بایت، نحوه تبدیل تاریخ یا رشته تاریخ را به مهر زمانی در جاوا اسکریپت بررسی خواهیم کرد.
چرا تاریخ یا رشته تاریخ را به مهر زمانی تبدیل کنیم؟
اما چرا در وهله اول باید یک تاریخ یا رشته تاریخ را به مهر زمانی تبدیل کنیم؟ مهرهای زمانی روشی جهانی تر برای ذخیره اطلاعات تاریخ و زمان هستند. آنها تعداد ثانیه ها (یا میلی ثانیه ها) از زمان یونیکس (1 ژانویه 1970) را نشان می دهند و آنها را راهی ساده برای ذخیره داده های تاریخ و زمان می کند. آنها همچنین دارای منطقه زمانی ناشناس هستند، که می تواند کارها را در هنگام برخورد با داده های مناطق زمانی مختلف ساده کند.
تاریخ ها و مهرهای زمانی در جاوا اسکریپت
قبل از اینکه به تبدیل تاریخهایمان بپردازیم، بیایید لحظهای وقت بگذاریم تا بفهمیم با چه چیزی سر و کار داریم. در جاوا اسکریپت، a Date
شی یک لحظه در زمان را نشان می دهد. شما می توانید یک شی Date جدید با استفاده از new Date()
سازنده
از سوی دیگر، مهر زمانی یک نمایش عددی از تاریخ است، همانطور که قبلا توضیح داده شد.
let currentDate = new Date();
console.log(currentDate); // Outputs: 1402-10-04T13:20:23.670Z
نحوه تبدیل تاریخ به مهر زمانی
تبدیل شیء Date به مهر زمانی در جاوا اسکریپت بسیار ساده است. می توانید استفاده کنید getTime()
روش، که تعداد میلی ثانیه از زمان یونیکس را برمی گرداند.
let currentDate = new Date();
let timestamp = currentDate.getTime();
console.log(timestamp); // Outputs: 1696425660603
توجه داشته باشید: را getTime()
متد مهر زمانی را در برمیگرداند میلی ثانیه. اگر به مهر زمانی نیاز دارید ثانیه، می توانید نتیجه را بر 1000 تقسیم کنید.
چگونه یک رشته تاریخ را به مهر زمانی تبدیل کنیم
پس چه می شود اگر ما یک تاریخ در قالب رشته داشته باشیم؟ این فرآیند مشابه قبل خواهد بود، اما با مرحله اضافی تبدیل رشته به a Date
شی و سپس مهر زمان.
فقط مطمئن شوید که رشته تاریخ شما در قالبی باشد که Date
سازنده می تواند درک کند. مطابق با MDN:
مشخصات جاوا اسکریپت فقط یک قالب را مشخص می کند که به طور جهانی پشتیبانی شود: the قالب رشته تاریخ تاریخ، ساده سازی قالب تمدید شده تقویم ISO 8601. قالب به شرح زیر است:
YYYY-MM-DDTHH:mm:ss.sssZ
ظاهراً فرمتهای دیگر کار میکنند، اما به پیادهسازی وابسته هستند و ممکن است در همه مرورگرها کار نکنند.
let dateString = "1402-10-04";
let dateObject = new Date(dateString);
let timestamp = dateObject.getTime();
console.log(timestamp); // Outputs: 1696377600000
بنابراین رشته تاریخ باید در قالبی باشد که توسط Date.parse()
روش (در داخل توسط Date
سازنده). در حالی که قالب بالا به طور رسمی مشخص شده است، می توانید از تاریخ های کوتاه نویسی بیشتری مانند “YYYY-MM-DD” نیز استفاده کنید.
راه حل های دیگر
در حالی که ما بر روی آن تمرکز کرده ایم Date
شی و آن getTime()
روشی برای تبدیل تاریخ به مهر زمانی در جاوا اسکریپت، راه های دیگری نیز برای رسیدن به همین هدف وجود دارد. به عنوان مثال، valueOf()
متد مقدار اولیه a را برمی گرداند Date
شی به عنوان یک نوع داده عددی، که مهر زمانی است.
در اینجا یک مثال است:
let date = new Date();
console.log(date.valueOf()); // Output: 1696428432208
را +
همچنین می توان از عملگر برای تبدیل a استفاده کرد Date
اعتراض به مهر زمانی این کار می کند زیرا +
اپراتور باعث می شود valueOf()
روش پشت صحنه برای انجام هر عملیات ریاضی در تاریخ.
let date = new Date();
console.log(+date); // Output: 1696428432208
توجه داشته باشید: در حالی که این روش ها به یک نتیجه می رسند، مهم است که بدانیم چگونه کار می کنند و چه زمانی از آنها استفاده کنیم. را +
برای مثال، اپراتور ممکن است برای کسی که کد شما را میخواند، کمتر از آن واضح باشد getTime()
یا valueOf()
مواد و روش ها.
خطاهای رایج و نحوه اجتناب از آنها
یک اشتباه رایج هنگام کار با تاریخ ها و مُهرهای زمانی در جاوا اسکریپت، در نظر گرفتن مناطق زمانی است. جاوا اسکریپت Date
شی است بر اساس منطقه زمانی محلی کاربر، اما مهرهای زمانی همیشه UTC هستند. این می تواند منجر به نتایج غیرمنتظره ای شود اگر به درستی انجام نشود.
به عنوان مثال، فرض کنید شما یک ایجاد می کنید Date
اعتراض برای نیمه شب در یک تاریخ خاص:
let date = new Date('1402-10-04T00:00:00');
console.log(date.getTime()); // Output: 1696428432208
بسته به منطقه زمانی محلی شما، مهر زمانی ممکن است نشان دهنده UTC نیمه شب نباشد، بلکه زمان دیگری را نشان دهد. برای جلوگیری از این، همیشه ایجاد کنید Date
اشیاء در UTC زمانی که قصد دارید آنها را به مهر زمانی تبدیل کنید.
یکی دیگر از اشتباهات رایج استفاده از Date.parse()
روش تبدیل رشته تاریخ به مهر زمان. در حالی که این می تواند کار کند، توصیه نمی شود زیرا Date.parse()
رفتار ناهماهنگی در مرورگرهای مختلف دارد و می تواند منجر به برخی از اشکالات بسیار سخت شود!
موارد استفاده تبدیل تاریخ/مهر زمان
تبدیل تاریخ به مهر زمانی در بسیاری از موقعیت ها مفید است. به عنوان مثال، مُهرهای زمانی اغلب در APIها و پایگاههای داده برای ثبت زمان وقوع یک رویداد استفاده میشوند. با ذخیره کردن زمان بهعنوان مهر زمانی، میتوانید به راحتی زمانها را مقایسه کرده و مدت زمان را محاسبه کنید – چیزی که با رشتههای تاریخ بسیار سختتر یا مستعد خطا است.
مهرهای زمانی نیز برای تست عملکرد مفید هستند. با گرفتن مهر زمانی در شروع و پایان یک فرآیند، می توانید مدت زمان آن را محاسبه کنید. این یک تکنیک رایج در جاوا اسکریپت و سایر زبان های برنامه نویسی است. شما این کار را با ایجاد موارد جدید انجام می دهید Date
اشیاء در شروع/پایان فرآیند، اما پس از آن باید به برچسب زمانی تبدیل کنید تا بتوانید تفاوت بین این دو را پیدا کنید.
نتیجه
در این بایت، نحوه تبدیل تاریخ به مهر زمانی در جاوا اسکریپت را با استفاده از Date
اشیاء getTime()
روش. ما همچنین به روشهای جایگزین، خطاهای رایج برای اجتناب و برخی موارد استفاده برای تبدیل تاریخ و مهر زمان نگاه کردهایم.
منتشر شده در 1402-12-26 15:32:04