پرسش

چطور تاریخ و زمان حال رو در جاوااسکریپت به دست بیارم؟

Getting current date and time in JavaScript

من یک اسکریپت دارم که تاریخ و زمان فعلی رو در جاوااسکریپت چاپ می‌کنه، اما تاریخ همیشه اشتباهه.

کد من به این شکل است:

var currentdate = new Date();
var datetime = "Last Sync: " + currentdate.getDay() + "/" + currentdate.getMonth() + "/" + currentdate.getFullYear() + " @ " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds();

باید 18/04/2012 15:07:33 چاپ بشه اما نتیجه 3/3/2012 15:07:33 هست.
مشکل چیه؟

1403/06/06
پاسخ
محمدامین سعیدی راد
بیوگرافی محمدامین سعیدی راد

مشکل اینجاست که از متد .getDay() برای دریافت روز استفاده کردی که روز هفته (0 تا 6) رو برمی‌گردونه، نه روز ماه. همچنین، متد .getMonth() ماه رو به‌صورت صفر مبنا برمی‌گردونه (یعنی ژانویه 0 است)، بنابراین باید 1 بهش اضافه کنی. کد اصلاح شده به این شکله :

var currentdate = new Date();
var datetime = "Last Sync: " + currentdate.getDate() + "/" + (currentdate.getMonth() + 1) + "/" + currentdate.getFullYear() + " @ " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds();

همچنین می‌تونی برای نمایش تاریخ و زمان به‌صورت حرفه‌ای‌تر، از متدهای toLocaleDateString و toLocaleTimeString استفاده کنی:

var currentdate = new Date();
var datetime = "Last Sync: " + currentdate.toLocaleDateString() + " @ " + currentdate.toLocaleTimeString();

این روش‌ها به صورت خودکار تاریخ و زمان را بر اساس تنظیمات محلی سیستم نمایش می‌دن.

پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/12