پنجشنبه ۰۴ اردیبهشت ۱۴۰۴

Thursday, April 24, 2025 GMT +3:30

کار با تاریخ و زمان در جاوا اسکریپت (JavaScript)

javascript-date-time

تاریخ و زمان، از جمله مباحث پرکاربرد و چالش های همیشگی در زبان های برنامه نویسی و به طور خاص در برنامه نویسی وب (php، asp، javascript و...) است، به خصوص برای کسانی که از تاریخی به جزء تاریخ میلادی استفاده می کنند (مانند ما کاربران فارسی زبان)، مشکل از این نیز پیچیده تر می شود، چرا که ناچاریم تاریخ میلادی را به شمسی تبدیل کنیم که خود به محاسبات دقیق و پیچیده نیاز دارد، از طرفی همان طور که پیش از این گفته ایم، جاوا اسکریپت یک زبان سمت کاربر (Client-side) است، بدین معنی که کدهای شما تنها در مرورگر کاربران قابل اجرا است و لذا تنظیمات آن نیز به مرورگر و به تبع به سیستم عامل کاربر وابسته است (که خود معایب و مزایایی دارد)، به هر صورت آشنایی با نحوه کار توابع مربوط به تاریخ و زمان در جاوا اسکریپت، جهت تسلط بیشتر بر این زبان، جزء جدایی ناپذیر از آموزش های مقدماتی است و لذا در این مطلب می خواهیم به آن بپردازیم.

توابع نمایش تاریخ و زمان در جاوا اسکریپت


برای نمایش یک تاریخ در جاوا اسکریپت ابتدا باید یک شی (object) با استفاده از Date در کد خود ایجاد کنیم (این شی به صورت از پیش تعریف شده یا built-in در مفسر جاوا اسکریپت وجود دارد)، به طور مثال:
<script type="text/javascript">
var now =  new Date();
alert(now);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
Sun Jan 20 2013 13:45:58 GMT+0330 (Iran Standard Time)
اکنون متغیر فرضی now می تواند از توابع نمونه و از پیش تعریف شده شی Date استفاده کند، تعداد و کاربرد این توابع متنوع است که در زیر به اختصار به مهم ترین آنها اشاره می کنیم.

تابع getdate


از تابع getdate برای بدست آوردن روز به صورت عددی (بین 1 تا 31) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var day = now.getDate();
alert(day);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
20

تابع getDay


از تابع getDay برای بدست آوردن روز معین از روزهای هفته به صورت عددی (بین 0 تا 6) کاربرد دارد، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var day = now.getDay();
alert(day);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
0

تابع getFullYear


از تابع getFullYear برای بدست آوردن سال های میلادی به صورت عدد چهار رقمی استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var full_year = now.getFullYear();
alert(full_year);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
2013

تابع getHours


از تابع getHours برای بدست آوردن ساعت فعلی سیستم (به صورت عدد دو رقمی) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var hour = now.getHours();
alert(hour);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
13

تابع getMilliseconds


از تابع getMilliseconds برای بدست آوردن هزارم ثانیه از زمان فعلی (زمان موجود در شی Date) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var millisecond = now.getMilliseconds();
alert(millisecond);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
937

تابع getMinutes


از تابع getMinutes برای بدست آوردن دقیقه (بین عدد 1 تا 60) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var minute = now.getMinutes();
alert(minute);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
45

تابع getMonth


از تابع getMonth برای بدست آوردن ماه (بین اعداد 0 تا 11) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var month = now.getMonth();
alert(month);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
0

تابع getSeconds


از تابع getSeconds برای بدست آوردن ثانیه (بین 0 تا 60) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var second = now.getSeconds();
alert(second);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
58

تابع getTime


از تابع getTime برای بدست آوردن مدت زمان به میلی ثانیه از نیمه شب اول ژانويه سال 1970 میلادی استفاده می شود (این عدد یک تاریخ قراردادی تعریف شده در Unix time است، در واقع این زمان مشخص کننده مدت میلی ثانیه سپری شده از شروع ساعت هماهنگ جهانی یا  Coordinated Universal Time (به اختصار  UTC یا POSIX) است، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var since_1970 = now.getTime();
alert(since_1970);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
1358681328943

تابع getTimezoneOffset


از تابع getTimezoneOffset برای بدست آوردن اختلاف زمانی به دقیقه از GMT استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
var time_zone = now.getTimezoneOffset();
alert(time_zone);
</script>
خروجی کد بالا به صورت نمونه زیر خواهد بود.
-210
نکته 1: خروجی تابع getTimezoneOffset برای زمان های محلی که اختلاف آنها نسبت به GMT مثبت باشد (مانند 3:30 برای ایران)، عدد منفی خواهد بود و بالعکس برای زمان های محلی که اختلاف آنها نسب به GMT منفی باشد، عدد مثبت خواهد بود.
نکته 2: توابعی که در بالا بررسی کردیم، به صورت استاندارد UTC یا ساعت هماهنگ جهانی نیز قابل استفاده هستند، لذا اگر ساعت محلی سیستم عامل با ساعت UTC برابر نباشد (اختلاف زمانی وجود داشته باشد)، استفاده یا عدم استفاده از UTC نیز نتیجه متفاوت خواهد داشت (در صورت استفاده، زمان دریافتی بر اساس استاندار UTC خواهد بود نه الزاما زمان سیستم عامل).

توابع تنظیم تاریخ و زمان در جاوا اسکریپت


در کنار توابعی که برای نمایش تاریخ و زمان در جاوا اسکریپت وجود دارد، می توان از سری دیگری از توابع هم خانوده آنها جهت اعمال تغییرات در تاریخ و زمان استفاده کرد، این توابع که با عبارت set شروع می شوند را در ادامه برسی می کنیم.

تابع setDate


از تابع setDate برای تغییر روز (بین 1 تا 31) از تاریخ مورد نظر استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setDate(22);
day = now.getDate();
alert(day);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
22

تابع setFullYear


از تابع setFullYear برای تنظیم سال به صورت عدد چهار رقمی استفاده می شود، به طورر مثال:
<script type="text/javascript">
var now =  new Date();
now.setFullYear(2000);
full_year = now.getFullYear();
alert(full_year);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
2000

تابع setHours


از تابع setHours برای تنظیم ساعت (بین 0 تا 23) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setHours(14);
hour = now.getHours();
alert(hour);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
14

تابع setMilliseconds


از تابع setMilliseconds برای تنظیم زمان به هزارم ثانیه (بین 0 تا 999) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setMilliseconds(556);
millisecond = now.getMilliseconds();
alert(millisecond);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
556

تابع setMinutes


از تابع setMinutes برای تنظیم دقیقه (بین عدد 1 تا 60) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setMinutes(23);
minute = now.getMinutes();
alert(minute);
</script>
خروجی کد بالا به شکل زیر خواهد بود.
23

تابع setMonth


از تابع setMonth برای تنظیم یک ماه (بین اعداد 0 تا 11) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setMonth(0);
month = now.getMonth();
alert(month);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
0

تابع setSeconds


از تابع setSeconds برای تنظیم زمان به ثانیه (بین اعداد 0 تا 60) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setSeconds(33);
second = now.getSeconds();
alert(second);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
33

تابع setTime


از تابع setTime برای تنظیم زمان به صورت میلی ثانیه از نیمه شب اول ژانويه سال 1970 میلادی (زمان به صورت Unix) استفاده می شود، به طور مثال:
<script type="text/javascript">
var now =  new Date();
now.setTime(1358681325766);
time = now.getTime();
alert(time);
</script>
خروجی کد بالا به صورت زیر خواهد بود.
1358681325766
نکته: به جزء تابع setTime، سایر توابع مربوط به set بر اساس استاندارد UTC نیز قابل استفاده هستند.

نمایش تاریخ و زمان به صورت فرمت بندی شده در جاوا اسکریپت


در پایان این آموزش بد نیست نگاهی داشته باشیم به توابع مربوط به فرمت بندی و نمایش تاریخ و زمان در جاوا اسکریپت، البته همان طور که پیش از این عنوان شد، این توابع از پیش تعریف شده منطبق با تاریخ میلادی هستند و لذا برای سایر موارد باید کلاس ها و توابعی مجزا و مستقل نوشت، به هر صورت لیستی از این توابع و نمونه خروجی آنها را در زیر ملاحظه می کنید.
تابع toDateString - نمونه خروجی: Thu Jan 24 2013
تابع toLocaleDateString - نمونه خروجی: Thursday, January 24, 2013
تابع toLocaleFormat - نمونه خروجی: Thursday, January 24, 2013 10:01:15 PM
تابع toLocaleString - نمونه خروجی: Thursday, January 24, 2013 10:02:12 PM
تابع toLocaleTimeString - نمونه خروجی: 10:03:56 PM
تابع toString - نمونه خروجی: Thu Jan 24 2013 22:16:49 GMT+0330 Iran Standard Time
تابع toTimeString - نمونه خروجی: 22:18:04 GMT+0330 Iran Standard Time

مثال و پیش نمایش آنلاین


در زیر می توانید مثالی از کاربرد تاریخ و زمان در جاوا اسکریپت و پیش آنلاین آن را ملاحظه و بررسی نمائید.
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>وبگو | date و time در جاوا اسکریپت</title>
<!-- https://webgoo.ir -->
<style type="text/css">
body{
    font-family:Tahoma, Geneva, sans-serif;
    font-size:12px;
    direction:rtl;
}
#date{
    direction:ltr;
}
</style>
<script type="text/javascript">
function RefreshDate(){
    var refresh_date = setTimeout('ShowDate();', 1000);
}
function ShowDate(){
    var now =  new Date();
    var show = document.getElementById('date').innerHTML = now;
    var refresh_date = RefreshDate();
}
</script>
</head>
<body onload="ShowDate();">
<noscript>جاوا اسکریپت در مرورگر شما غیرفعال است یا پشتیبانی نمی شود.</noscript>
<div id="date"></div>
<hr>
با استفاده از Date و setTimeout می توان تاریخ و زمان را به صورت داینامیک نمایش داد.
</body>
</html>
پیش نمایش
دسته بندی: آموزش مقدماتی » JavaScript
related مطالب بیشتر:
دستور switch و case در جاوا اسکریپت (JavaScript)
شروعی بر برنامه نویسی جاوا اسکریپت (JavaScript)
توابع (Functions) در جاوا اسکریپت (JavaScript)
عملگرها (Operators) در جاوا اسکریپت (JavaScript)
تعریف و استفاده از متغیر (Variable) در جاوا اسکریپت (JavaScript)
دیدگاه
more ۶۳ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
مجتبی
۲۳:۲۳ ۱۴۰۳/۰۶/۲۰
سلام وقت بخیر
میخوام یک روز به تاریخ دریافتی اضافه شه ممنون میشم راهنمایی کنید
برای افزودن یک روز به تاریخ فعلی در جاوا اسکریپت می توانید از نمونه کد زیر استفاده کنید:
var now = new Date();
//add a day
now.setDate(now.getDate() + 1);
alert(now);
محمد
۲۱:۵۵ ۱۴۰۲/۱۱/۲۳
سلام من گوشی نوکیای جاوا دارم که ساعت گویاش فعال شده و به صورت انگلیسی ساعت رو میگه میخواستم ببینم چطور میشه ساعت گویاش رو غیر فعال کنم؟
بسته به مدل گوشی باید از منو وارد تنظیمات ساعت شوید و Speaking clock را غیر فعال کنید.
بهاره هوشمندی
۰۰:۳۹ ۱۴۰۲/۰۸/۰۹
با تشکر از شما استاد گرامی
پس کد رو باید اینطوری وارد کنم؟
حذف شد
اینطوری واسه من کار می کنه
سپاسگزارم از شما
خیلی بهم کمک کردید
خدا پشت و پناهتون باشه
بله ظاهرا که مشکلی ندارد، سلامت باشید.
بهاره هوشمندی
۲۱:۲۱ ۱۴۰۲/۰۸/۰۸
با سلام
از لطف و محبت شما بسیار ممنون و سپاسگزارم دست شما درد نکنه لینکهای شما رو بررسی کردم یعنی باید کل کدهایی که از وب گذر دریافت کردم اون رو بی خیال بشم؟ و فقط از این کدهای شما استفاده کنم؟ اون کدها هم تنظیمات خودشون رو ندارن؟ واسه سایت amarfa کدها بازم به این شکلی که نوشتید میشه؟
کد آمارگیرش اینطوریه
https://amarfa.ir/stats/12141.js
با تشکر
خواهش، برای سایت وبگذر چون صرفا کد اصلی نمایش دهنده آمار و تنظیمات در یک آدرس URL است هم می توانید از شیوه خلاصه نویسی ما استفاده کنید هم از کدهای اصلی وبگذر، ساختار کلی راه حل به شکل نمونه زیر است:
<script>
var wlh = window.location.href;
if(wlh.indexOf("login") > -1) {
//کدهای این قسمت زمانی اجرا می شوند که عبارت مورد نظر در آدرس باشد
} else {
//کدهای این قسمت زمانی اجرا می شوند که عبارت مورد نظر در آدرس نباشد
}
</script>
به این صورت هر کد جاوا اسکریپتی که از سایت های آمارگیر دریافت می کنید را می توانید در قسمت دوم درج کنید، البته باید تگ های script را حذف کنید و محتوای داخل تگ ها را درج کنید، ظاهرا در نمونه کد سایت amarfa.ir محتویات داخل یک فایل JS وجود دارد که باید استخراج و به صورت مستقیم درج کنید، اگر هم نحوه درج ابزار دو قسمتی است کافی است قسمتی که اسکریپت اصلی داخل فایل JS اجرا می شود را در شرط if قرار دهید.
بهاره هوشمندی
۱۸:۵۵ ۱۴۰۲/۰۸/۰۸
با سلام و تشکر از شما
من توی یه صفحه خالی هم امتحان کردم و یه amar.html هم توی پوشه root هاست ساختم بازم اونو محاسبه می کنه! صفحه لاگین من اینطوریه
site.com/xmain/login
میشه خواهش کنم این کد رو یه صفحه خالی واسه خودتون چک کنید بعد من سورس صفحه رو ببینم؟ از روی اون تنطیم کنم
با تشکر از شما استاد بزرگوارم
این آدرس را ملاحظه کنید:
https://example.com/stats.html
در حالت عادی کد آمارگیر عمل می کند اما اگر صفحه را به صورت زیر فراخوانی کنیم:
https://example.com/stats.html?login
بخش آمارگیر کد اجرا نمی شود چون عبارت login در آدرس URL وجود دارد.
خروجی HTML سایتتان را چک کنید ممکن است به هر دلیل کد آمارگیر دو بار و در جایی دیگر هم چاپ می شود.
بهاره هوشمندی
۰۱:۴۷ ۱۴۰۲/۰۸/۰۸
با سلام
با تشکر از شما
من کاری که گفتید رو انجام دادم ولی بازم صفحه لاگین رو که میزنم باز آمارگیر اونو هم محاسبه می کنه!
لینک خودم رو هم جایگزین کردم
آدرس URL صفحه لاگین شما به چه شکلی هست؟، لطفا یک نمونه درج کنید تا بررسی کنیم. باید کد اسکریپت قبلی را حذف و کد جدید را به صورتی که در پاسخ قبل درج کرده ایم تنظیم کرده باشید، برای اطمینان اگر کد را در یک صفحه HTML خالی امتحان کنید، می بینید که راه حل مشکلی ندارد.
بهاره هوشمندی
۱۹:۰۲ ۱۴۰۲/۰۸/۰۷
سلام خسته نباشید
من یه کد واسه آمارگیر دارم که جاو هست از سایت وبگذر بعد توی همه صفحه ها فعاله چطوری می تونم توی بعضی از صفحه هایی که خودم نمیخوام غیرفعالش کنم و اونجا کار نکنه! مثلا موقع ورود به سایت
با تشکر فراوان
به چند روش می توانیم آمارگیر را غیرفعال کنیم، در ساده ترین حالت با استفاده از جاوا اسکریپت و بررسی وجود پارامتری خاص در آدرس URL صفحه می توانیم کد آمارگیر را در خروجی چاپ نکنیم، مثال:
<script>
var wlh = window.location.href;
if(wlh.indexOf("login") > -1) {
//login in URL, don't write stats script!
} else {
var script = document.createElement('
script');
script.src = '
http://www.webgozar.ir/c.aspx?Code=1111111&amp;t=counter';
document.write(script.outerHTML);
}
</script>
در این مثال اگر عبارت login در آدرس صفحه باشد کد script وبگذر چاپ نمی شود، اگر هم سایت با PHP است روش های دیگری مبتنی بر این زبان وجود دارد.
نکته 1: قاعدتا برای تنظیم نمونه کد بالا باید در قسمت src اطلاعات اسکریپت خود را جایگزین حالت آزمایشی فعلی کنیم.
نکته 2: برای اضافه کردن صفحات بیشتر باید قسمت if را به شکل نمونه زیر ویرایش کنیم:
if(wlh.indexOf("login") > -1 || wlh.indexOf("admin") > -1 || wlh.indexOf("test") > -1) {
که در اینجا وجود دو پارامتر admin و test را هم بررسی می کنیم.
Fateme
۰۵:۳۶ ۱۴۰۲/۰۷/۰۵
سلام مطالب عالی و استفاده می کنم دستتان درد نکنه . سوال من این هست چطور میتونم تاریخ تولد را وارد کنم سن شخص رو حساب کنه و در جدول نمایش بده
با استفاده از زبان JavaScript صرفا امکان محاسبه تاریخ ها به میلادی فراهم است و برای تاریخ شمسی باید از کلاس های زبان PHP استفاده کنیم، در هر صورت در جاوا اسکریپت می توانیم نمونه کدی شبیه به مثال زیر داشته باشیم:
<label for="birth-date-year">Year:</label>
<input id="birth-date-year" type="text" size="4" maxlength="4">
<label for="birth-date-month">Month:</label>
<input id="birth-date-month" type="text" size="2" maxlength="2">
<label for="birth-date-day">Day:</label>
<input id="birth-date-day" type="text" size="2" maxlength="2">
<button onclick="callAgeFunc();">Click</button>
<br>Age:<div id="age-result"></div>
<script>
function getAgeYear(date_string) {
var today_date = new Date();
var birth_date = new Date(date_string);
var age_year = today_date.getFullYear() - birth_date.getFullYear();
var age_month = today_date.getMonth() - birth_date.getMonth();

if(age_month < 0 || (age_month === 0 && today_date.getDate() < birth_date.getDate())) {
age_year--;
}

//return
return age_year;
}

function callAgeFunc() {
var birth_date_year = document.getElementById('birth-date-year');
var birth_date_month = document.getElementById('birth-date-month');
var birth_date_day = document.getElementById('birth-date-day');
var age_result = document.getElementById('age-result');

age_result.innerHTML = getAgeYear(parseInt(birth_date_year.value) + '/' + parseInt(birth_date_month.value) + '/' + parseInt(birth_date_day.value));
}
</script>
همان طور که گفتیم تاریخ تولد باید به صورت میلادی درج شود.
mehdi
۱۲:۳۴ ۱۴۰۲/۰۶/۱۵
سلام من امتحان کردم نشد
مشکل در چه قسمتی است؟
سامان
۰۲:۲۴ ۱۴۰۱/۱۲/۲۱
سلام امکان داره شما یک مثال بهتر بزنید نسبت به بنده که بجای بک گراند کل صفحه تغییر رنگ بده بصورت خودکار
باید تگ body به صورت نمونه زیر در صفحه شما وجود داشته باشد:
<body>
<div id="header"></div>
</body>
با ویرایش قسمت var daynight به صورت زیر می توانید تغییرات را روی تگ body اعمال کنید:
var daynight = document.querySelector('body');
در کل معمولا هیچ کد آماده ای تمام سفارشی سازی ها را از قبل ندارد، اگر با جاوا اسکریپت آشنا باشید به راحتی می توانید تغییرات مد نظرتان را اعمال کنید، رنگ ها را هم می توانید به صورت کدهای هگز (به فرض F7272A) در بخش style تغییر دهید.
سامان
۰۲:۵۹ ۱۴۰۱/۱۲/۲۰
سلام
من کلی در سطح وب گشتم اما نتونستم چیزی پیدا کنم درباره اینکه چطور ظاهر سایت در روز سفید بشه و در شب سیاه به عبارتی dark mod من این کد امتحان کردم ولی این سورس اونچیزی که من دنبالشم نیست. ممنون میشم راهنمایی بفرمایید
<style>
#header {
height: 200px;
width: 100%;
border: 1px solid #B5B5B5;
}
.day {
background: #35AAFF;
}
.night {
background: #F7272A;
}
</style>
<div id="header"></div>
<script>
function smartTemplate(){
var daynight = document.querySelector('#header');
var currentTime = new Date();
var hours = currentTime.getHours();
var minutes = currentTime.getMinutes();

if(hours < 6 || hours >= 18) {
//console.log('night');
daynight.classList.remove('day');
daynight.classList.add('night');
}

if(hours >= 6 && hours < 18) {
//console.log('day');
daynight.classList.remove('night');
daynight.classList.add('day');
}
}

//call function
smartTemplate();
</script>
با توجه به توضیحات به نظر نمونه کدی که درج کرده اید دقیقا مبتنی بر هدف شما است، عملکرد کد به این شکل است که طی ساعات خاصی از شبانه روز کلاس day را برای بلاک با آی دی header فعال می کند و در ساعات دیگر کلاس night را به این بلاک اختصاص می دهد که به این صورت دو رنگ متفاوت در طول روز و شب برای یک بلاک در نظر گرفته می شود، با این مبنا می توانید بقیه موارد مثل رنگ پس زمینه کل صفحه، رنگ متن و... را تغییر داده و قالب وب را مطابق نیازتان سفارشی سازی کنید.
نازنین
۱۷:۳۹ ۱۴۰۰/۱۰/۱۲
اسکریپتی بنویسید که نام و نام خانوادگی و سال تولد شخص را دریافت کرده، علاوه بر نمایش نام و‌ نام خانوادگی در مرورگر، سن فرد را محاسبه کرده و نمایش دهد و بگوید فرد به سن بلوغ رسیده است یا خیر.
بهتر بود بخشی از کد را می نوشتید، به هر صورت از نمونه کد زیر می توانید الگوبرداری کنید:
<script>
function checkInfo(){
var elm_name = document.getElementById("name");
var elm_family = document.getElementById("family");
var elm_birth = document.getElementById("birth");

var age = 1400 - parseInt(elm_birth.value);
var status = 'No';

var elm_result = document.getElementById("result");

if(age > 15){
status = 'Yes';
}

elm_result.innerHTML = "Name: " + elm_name.value + ", Family: " + elm_family.value + ", Bolugh: " + status;
}
</script>
<label for="name">name:</label>
<input id="name" type="text">
<label for="family">family:</label>
<input id="family" type="text">
<label for="birth">birth:</label>
<select id="birth">
<option value="1340">1340</option>
<option value="1350">1350</option>
<option value="1360">1360</option>
<option value="1370">1370</option>
<option value="1380">1380</option>
<option value="1390">1390</option>
</select>
<br>
<button onclick="checkInfo();">check</button>
<div id="result"></div>
این کد ناقص و صرفا جهت راهنمایی بیشتر است.
zahra
۱۳:۱۸ ۱۴۰۰/۱۰/۰۸
سلام وقتتون بخیر باشه من میخام از 1 تا 30 روز و برام چاپ کنه یعنی اگر ماه 31 روز بود 1 تا 31 را چاپ کند چه کنیم
بسته به اینکه تاریخ میلادی یا شمسی مد نظر است و اینکه تاریخ اولیه برنامه از چه روشی بدست می آید (به فرض تاریخ سرور و کدهای PHP است یا تاریخ سیستم کاربر و JavaScript؟) نحوه نوشتن تابع نهایی متفاوت خواهد بود، برای شروع می توانید از الگوی زیر استفاده کنید:
<script>
var month_days = [31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29];
var month_current = 5;
for(var i = 0; i < month_days[month_current]; i++){
document.write(i + 1);
document.write("<br>");
}
</script>
در صورتی که به تاریخ ماه جاری و... به صورت داینامیک احتیاج دارید باید جاوا اسکریپت را با دستورات PHP ترکیب کنید.
oscar
۱۵:۵۹ ۱۳۹۹/۰۴/۰۲
درود. اگر بخوایم در نمایش تاریخ و زمان که به صورت لحظه ای خودش در صفحه رفرش میشه، فقط عبارت " Mon Jun 22 2020 15:57:14 " نمایش داده بشه و عبارت " GMT+0430 (Iran Daylight Time) " نمایش داده نشه چکار باید بکنیم؟
برای نمایش تاریخ و زمان با جاوا اسکریپت به نحو دلخواه (بدون GMT) هم می توانید قسمت زیر را ویرایش و متد toLocaleString را اضافه کنید:
var show = document.getElementById('date').innerHTML = now.toLocaleString();
هم از روش تجزیه خروجی متد Date به شکل نمونه زیر استفاده کنید:
var now =  new Date();
var space = ' ';
var array = now.toString().split(space);
now = array[0] + space + array[1] + space + array[2] + space + array[3] + space + array[4];
زهیر صفری
۱۲:۳۸ ۱۳۹۹/۰۲/۲۶
با سلام چطور میتونم تاریخ تولد فرد ایرانی رو بگیره مثلا از input و سن فرد رو در input بعدی نمایش بده
میتونید راهنمایی یا بسازید با تشکر
این یک برنامه کاربردی و نوشتن آن زمانبر است، صرفا در حد راهنمایی ابتدا باید تاریخ شمسی امروز را به روز ماه سال داشته باشیم (ترجیحا با استفاده ترکیبی از PHP و جاوا اسکریپت چون تا آنجا که اطلاع داریم برای محاسبه تاریخ شمسی با صرف جاوا اسکریپت کلاس آماده ای وجود ندارد)، سپس تاریخ تولد کاربر را به روز ماه سال از فیلد دریافت کنیم (شکل ظاهری کار با استایل CSS سفارشی سازی می شود)، در نهایت در تابع جاوا اسکریپتی به صورت نمونه زیر سن را محاسبه و در فیلد دیگری نمایش می دهیم:
<script>
function convertBirthToAge(t_year, t_month, t_day){
var i_year = document.getElementById('year').value;
var i_month = document.getElementById('month').value;
var i_day = document.getElementById('day').value;
var elm_age = document.getElementById('age');
var age;

if(t_year < i_year || i_year == ''){
alert('تاریخ تولد اشتباه است یا خطایی در محاسبه وجود دارد!');
} else{
age = parseInt(t_year) - parseInt(i_year);

if(t_month < i_month){
age--;
} else if(t_month == i_month){
if(t_day < i_day){
age--;
}
}

elm_age.value = age;
}
}
</script>
<label for="year">سال:</label>
<input id="year" type="text" dir="ltr">
<label for="year">ماه:</label>
<input id="month" type="text" dir="ltr">
<label for="year">روز:</label>
<input id="day" type="text" dir="ltr"><br>
<label for="year">سن:</label>
<input id="age" type="text" dir="ltr">
<button onclick="convertBirthToAge('1399', '2', '26');">محاسبه</button>
قاعدتا این یک نمونه است و جنبه کاربردی ندارد چون تاریخ شمسی امروز به صورت دستی وارد شده اما در برنامه کاربردی باید با کدهای PHP و تابع date مقادیر به صورت روز ماه سال در قسمت onclick چاپ شود، همچنین نحوه محاسبه سن می تواند متفاوت باشد، به فرض اگر فردی 35 سال و 1 روز داشته باشد او را 36 ساله مد نظر قرار دهیم یا خیر؟
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
3 × 7
20 × 20
=