آگهی
article

کار با تاریخ و زمان در جاوا اسکریپت (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>
پیش نمایش
sectionدسته بندی: آموزش مقدماتی » JavaScript
related مطالب بیشتر:
» شروعی بر برنامه نویسی جاوا اسکریپت (JavaScript)
» کار با متد getElementById و innerHTML در جاوا اسکریپت (JavaScript)
» تعریف و استفاده از متغیر (Variable) در جاوا اسکریپت (JavaScript)
» دستورات شرطی (Conditional Statements) در جاوا اسکریپت (JavaScript)
» حلقه for و while در جاوا اسکریپت (JavaScript)
commentنظرات (۴۷ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: محسن
زمان: ۱۹:۴۶:۳۷ - تاریخ: ۱۳۹۳/۰۴/۲۶
استاد! سوالم مشخصه.
یه سوال سادست!
من آشنایی کافی یا javascript و php دارم.
میخوام در فیلد ورودی تاریخ برنامم، تاریخ و ساعت جاری سیستم درج بشه. همین!!!!
چیکار باید بکنم؟
date (Now)????
پاسخ: 
دوست گرامی! این کار برای کسی که با Javascript و PHP آشنایی داشته باشد خیلی سخت نیست، کافی است پارامترهای مربوط به تاریخ را با استفاده از تابع date در Javascript ترکیب کنید، و سپس با رویداد onclick در فیلد موارد را از متغیر ها دریافت و در قسمت value فیلد قرار دهید، مثال:
<script type="text/javascript">
var year = '<?php echo date('Y'); ?>';
function setInput(id){
document.getElementById(id).value = year;
}
</script>
<input type="text" id="test" onclick="setInput(this.id);">
البته PHP تاریخ سرور را برمی گرداند، اگر بخواهید از جاوا اسکریپت استفاده کنید این کار ساده تر است و تاریخ و زمان سیستم عامل را برمی گرداند:
<script type="text/javascript">
var now = new Date();
var year = now.getFullYear();
function setInput(id){
document.getElementById(id).value = year;
}
</script>
<input type="text" id="test" onclick="setInput(this.id);">
همین طور است برای سایر پارامترها (روز، ماه، ساعت، دقیقه و ثانیه).
نویسنده: majid
زمان: ۱۳:۵۸:۴۶ - تاریخ: ۱۳۹۳/۰۵/۱۳
با سلام و تشکر از مطالب و توضیحات خوبتون
من یه فرم دارم با چند تا textbox که میخوام وقتی تاریخ را داخل textbox نوشتم داخل سطر جدولم اضافه شه چطور باید این کار رو انجام بدم چون الان که داخل textbox تاریخ رو مینویسم و دکمه submit میزنم داخل جدولم 00-00-0000 درج میشه. تشکر
پاسخ: 
سلام
نیاز به بررسی نمونه کد است.
نویسنده: هادی
زمان: ۱۹:۲۶:۳۲ - تاریخ: ۱۳۹۳/۰۵/۲۵
سلام. میخوام تابع جاوا من که در زیر اومده هر 3 ثانیه اجرا بشه :
<script type="text/javascript">
hadi = function pscode()
{
var OP=document.contactform.OnePrice.value;
var NUM=document.contactform.number.value;
var Post=document.contactform.posttype.value;
var Kala = OP * NUM;
var Allp = Kala + + Post;
document.contactform.AllPrice.value = Allp;
}
window.onload = hadi;
</script>
راهنمایی کنید
پاسخ: 
سلام
بدین منظور می توانید از
setTimeout
استفاده کنید، مثال:
<script type="text/javascript">
function test(){
alert('js!');
setTimeout('test();', 3000);
}
test();
</script>
نویسنده: کاربر مبتدی js
زمان: ۲۳:۰۵:۱۹ - تاریخ: ۱۳۹۳/۰۶/۱۲
سلام.
- لطفا در مورد تفاوت های کد نویسی رویه گرا و شیء گرا توضیحی بفرمایید.
- آیا لیستی از توابع داخلی JS وجود دارد
- آیا من که کارم با وبلاگ است به هیچ وجه نمی تونم از PHP استفاده کنم یا راهی وجود داره؟ من چند ساله که فقط از وبلاگ استفاده می کنم و بر HTML و CSS هم تقریبا تسلط دارم (با کمک آموزش های شما استاد عزیز) اما از این به بعد می خوام از سرور و دامنه استفاده کنم لطفا اگه امکانش هست توضیح بدید برای خرید و مدیریت سایت چه مراحلی است؟
پاسخ: 
سلام
- پاسخ سوالتان در اصل به ویژگی های برنامه نویسی شی گرا مانند Encapsulation، Polymorphism، Inheritance و... برمی گردد اما به بیان ساده در برنامه نویسی شی گرا تقریبا همه چیز ساختار نظام یافته ای دارد و در قالب کلاس ها و آبجکت ها تعریف می شود، به عبارت ساده تر در برنامه نویسی رویه گرا یا Procedural Programming به خودی خود ساختار مشخصی وجود ندارد و به فرض هر کجا که بخواهید می توانید دستور echo داشته باشید! یا از توابع استفاده کنید، اما در OOP یا Object-Oriented Programming اصول مشخصی وجود دارد که تنها در چارچوب آنها کدنویسی و ساختار تعریف می شود، به فرض نحوه اشتراک گذاری متدها بین کلاس ها و...
- عبارت "js methods" را در وب جستجو کنید.
- در سرویس های وبلاگ مانند سرویس های داخلی امکان استفاده از برنامه نویسی سمت سرور نیست، برای این کار همان طور که اشاره کرده اید باید هاست و دامنه شخصی داشته باشید، اینکه به چه نحوی سایتتان را بر پا کنید به خودتان بستگی دارد، اگر مهارتتان در PHP در سطح حرفه ای باشد می توانید یک CMS شخصی طراحی کنید، در غیر این صورت به نظر چاره ای جزء استفاده از CMS های رایگان مانند وردپرس، جوملا و... وجود ندارد.
نویسنده: Ali Zeus
زمان: ۰۲:۴۵:۴۷ - تاریخ: ۱۳۹۳/۰۶/۱۳
با سلام و خسته نباشید
این پست شما خیلی از مشکلاتم رو حل کرد، تشکر
چند سوال کلی دارم
1-ایا getTime برابر با
date('U')
در پی اچ پی است؟ و اگر نیست تابعی برابر با
date('U')
در جاوا وجود دارد؟
2- ایا تابعی مانند تابع rand پی اچ پی در جاوا وجود دارد که اعداد شانسی تولید کند؟
3- یک فایل جاوا اسکریپت با پسوند js در هاستم داشتم که پسوندشو به php تغیر دادم و کمی کد php بهش اضافه کردم. کار میکنه و مشکلی نداره فقط میخاستم ببینم این کار بعدها مشکلی ایجاد نمیکنه؟ استاندارد هست؟
4- ایا هر دکمه جاوا اسکریپتی (مثلا onclick) که در html قرار میدم باید javascript: رو داخلش حتما قرار بدم؟
با تشکر....
پاسخ: 
سلام
1- شباهت توابع به خروجی آنها بستگی دارد، لذا getTime در PHP معادل تابع
time()
است و چون خروجی
date('U')
نیز به همین صورت است، لذا این دو معادل متد مذکور در PHP هستند.
2- متد Math.random برای این کار کاربرد دارد، منتها برای شباهت با PHP باید آن را با Math.floor ترکیب کنید، مثال:
Math.floor((Math.random() * 50) + 1); 
که نتیجه عددی بین 1 تا 50 به صورت اتفاقی خواهد بود.
3- مشکل خاصی پیش نمی آید فقط باید syntax خروجی مطابق با جاوا اسکریپت رعایت شود، همچنین بهتر است در ابتدای خروجی فایل PHP دستور زیر تنظیم شود تا مروگر تشخیص دهید که خروجی فایل مذکور به صورت js است:
header("content-type: application/x-javascript");
4- خیر!، مثال های زیادی از نحوه فراخوانی توابع در رویدادها در وب وجود دارد، الزاما javascript در آنها استفاده نشده مگر در شرایط خاص مانند استفاده از دستورات خطی یا به فرض تابع void.
نویسنده: Ali Zeus
زمان: ۲۱:۰۲:۴۱ - تاریخ: ۱۳۹۳/۰۶/۱۳
با سلام و ممنون از پاسختون
فقط یک سوال دیگر... چون من جاوا زیاد بلد نیستم منظورتون رو دقیق از پاسخ سوال سوم نفهمیدم.
هدر رو قبل از خروجی فایل پی اچ پی قرار بدم یعنی مثلا در اولین خط؟ یعنی قبل از هر دستوری؟
و ایا هدر رو بصورت پی اچ پی
<?php header("content-type: application/x-javascript"); ?>
قرار بدم یا به همین صورت قرار بدم تا جاوا محسوب شه؟
بسیار ممنون
پاسخ: 
سلام
تابع header جزء توابع PHP است، لذا به صورت PHP و قبل از ارسال هر خروجی دیگر (ترجیحا در ابتدای صفحه) قرار دهید، با این کار در اطلاعات سربرگ HTTP سرور به مرورگر، نوع خروجی (JS) مشخص می شود.
نویسنده: Ali Zeus
زمان: ۰۱:۰۵:۱۲ - تاریخ: ۱۳۹۳/۰۶/۱۵
با سلام.... ممنون از کمکهاتون.... مرسی
نویسنده: محسن
زمان: ۱۰:۵۹:۲۹ - تاریخ: ۱۳۹۳/۰۷/۰۴
سلام با استفاده از این تابع ایا میشه سرعت اینترنت کاربر رو فهمید؟ مثلا زمان رو در ابتدای لود صفحه بگیریم و در انتهای لود صفحه هم بگیریم. حالا با استفاده از حجمی که صفحه ی سایتمون داره سرعت اینترنت کاربر رو بصورت تقریبی بفهمیم
اگه میشه راهنمایی کنید
پاسخ: 
سلام
به صورت تقریبی این کار ممکن است، چند روش در وب ارائه شده، از جمله بارگذاری یک فایل:
<script type="text/javascript">
var imageAddr = "yourimage.jpg" + "?n=" + Math.random();
var startTime, endTime;
var downloadSize = [size here...];
var download = new Image();
download.onload = function () {
endTime = (new Date()).getTime();
showResults();
}
startTime = (new Date()).getTime();
download.src = imageAddr;

function showResults() {
var duration = (endTime - startTime) / 1000;
var bitsLoaded = downloadSize * 8;
var speedBps = (bitsLoaded / duration).toFixed(2);
var speedKbps = (speedBps / 1024).toFixed(2);
var speedMbps = (speedKbps / 1024).toFixed(2);
alert("Your connection speed is: \n" +
speedBps + " bps\n" +
speedKbps + " kbps\n" +
speedMbps + " Mbps\n" );
}
</script>
در این روش یک تصویر با حجم مشخص از روی سرور شما فراخوانی می شود و در پایان میزان سرعت اینترنت کاربر به صورت تقریبی به دست می آید؛ روش دیگر استفاده از کد ساده زیر است که بر مبنای رویداد onload عمل می کند:
<script type="text/javascript">
var start = new Date().getTime();
window.onload = function() {
var now = new Date().getTime();
var latency = now - start;
alert("page loading time: " + latency);
}
</script>
نویسنده: امین
زمان: ۰۰:۰۵:۲۶ - تاریخ: ۱۳۹۳/۰۷/۲۹
با تشکر از تمامی مطالب مفیدتون.
نویسنده: شایسته
زمان: ۱۷:۱۷:۳۰ - تاریخ: ۱۳۹۳/۰۷/۳۰
سلام میخواستم بدونم از این کد چطوری استفاده کنم تاریخ رو از بانک میگیرم و با تاریخ الان میخوام مقایسه کنم بعد بگه اگه کمتر از یک روز بگه چند ساعت پیش اگه بیشتر از 1 روز بگه چند روز و من هر کاری کردم نتونستم از این اجرا بگیرم
<script type="text/javascript">
function compareDate(date_1, date_2){
var date_1_split = date_1.split('/');
var date_1_year = date_1_split[2];
var date_1_month = date_1_split[0];
var date_1_day = date_1_split[1];

var date_2_split = date_2.split('/');
var date_2_year = date_2_split[2];
var date_2_month = date_2_split[0];
var date_2_day = date_2_split[1];

//ساعت * دقیقه * ثانیه * میلی ثانیه
var one_day = 24 * 60 * 60 * 1000;
var one_hour = 60 * 60 * 1000;

var date_1_new = new Date(date_1_year + ',' + date_1_month + ',' + date_1_day);
var number_1 = date_1_year + '' + date_1_month + '' + date_1_day;
var date_2_new = new Date(date_2_year + ',' + date_2_month + ',' + date_2_day);
var number_2 = date_2_year + '' + date_2_month + '' + date_2_day;

if(number_1 < number_2){
var diffrence = Math.round(Math.abs((date_2_new.getTime() - date_1_new.getTime()) / (one_hour)));
}
else{
var diffrence = Math.round(Math.abs((date_1_new.getTime() - date_2_new.getTime()) / (one_day)));
}

return diffrence;
}
alert(compareDate('10/22/2014', '10/24/2014'));
</script>
پاسخ: 
سلام
کد (بالا) مطابق هدف شما ویرایش شد!
نویسنده: بابک
زمان: ۱۰:۳۶:۳۴ - تاریخ: ۱۳۹۳/۰۸/۱۶
برادر چرا قصه می بافی در مورد بدست اوردن اختلاف دو تاریخ در جاوا اسکریپت بنویس یا تبدیل شمسی به میلادی با جاوا اسکریپت بنویس وگر نه این چیزها دو میلیون سایت وجود داره
پاسخ: 
جاوا اسکریپت زبان سمت کاربر است و به نظر نوشتن کدی برای تبدیل تاریخ میلادی به شمسی و... ضرورت چندانی ندارد و شاید به همین دلیل کسی اقدام به این کار نکرده است، به جای آن از PHP استفاده می شود! از این گذشته این قسمت مناسب کاربرانی است که از ابتدا قصد فراگیری اصول پایه را دارند، بله در سایت های مخلف گفته شده و کسی منکر این نیست، اما هر کسی روش خودش را دارد و کاربران در انتخاب سایت مورد نظرشان آزاد هستند.
نویسنده: علی
زمان: ۱۲:۲۲:۰۱ - تاریخ: ۱۳۹۴/۰۱/۱۶
سلام میخواستم بدونم چه طور میشه به روزهای تاریخ جاری مثلا هفت روز اضافه کرد؟ مثلا وقتی کاربر از آیتم های کامبوباکس گزینه هفته ی بعد رو انتخاب میکنه اگه امروز شنبه هست تاریخ شنبه هفته ی بعدشو نشون بده، یعنی هفت روز به تاریخ فعلی اضافه کنه و البته ماه و سال هم هماهنگ بشه ؟
پاسخ: 
سلام
در صورت آشنایی با مبحث تاریخ و زمان در جاوا اسکریپت، نمونه کد زیر کمک خواهد کرد:
<script type="text/javascript">
function nextWeek(days){
var today = new Date();
var next = new Date(today.getFullYear(), today.getMonth(), today.getDate() + days);
return next;
}
alert(nextWeek(7))
</script>
نکته: کار با تاریخ داینامیک در جاوا اسکریپت عموما بر مبنای میلادی است، لذا برای نمایش به صورت تاریخ هجری شمسی باید این روش را با Ajax و PHP ترکیب کنید.
نویسنده: علی
زمان: ۱۸:۵۹:۰۳ - تاریخ: ۱۳۹۴/۰۵/۱۹
با سلام و با تشکر از پاسخ به سوالات
اگر امکانش هست نحوه کار و کد همین زمان و تاریخی که در سایت شما نمایش داده می شود را توضیح دهید. اینکه با چه زبانی نوشته شده و چطور به صفحات شما فراخوانی و نمایش داده می شود اگر امکانش هست کد را هم قرار دهید.
با تشکر فراوان
پاسخ: 
سلام
در نمایش تاریخ و زمان سایت از زبان سمت سرور (PHP) استفاده و برای فارسی سازی از کلاس jdf بهره گرفته شده که با جستجو در وب به راحتی می توانید از این کلاس استفاده کنید!
نویسنده: محمد
زمان: ۱۷:۰۴:۳۳ - تاریخ: ۱۳۹۴/۰۸/۱۳
سلام
میشه بپرسم چه جوری میشه ساعت سپری شده رو اعلام کرد. مثل سایت دیوار که تاریخ ارسال ها رو با ذکر زمان سپری شده اعلام میکنه
ممنون
پاسخ: 
سلام
باید نحوه مقایسه تاریخ ها (تاریخ فعلی و تاریخ گذشته) را بلد باشید، یک مثال در PHP:
<?php
$start_date = new DateTime('2015-01-01 12:10:08');
$since_start = $start_date->diff(new DateTime('2015-01-11 10:25:00'));
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';
?>
یک مثال در JavaScript:
<script type="text/javascript">
var date1 = new Date(2015, 2, 1, 9, 10, 10);
var date2 = new Date(2015, 3, 1, 9, 12, 15);
if (date2 < date1){
date2.setDate(date2.getDate());
}
var diff = date2 - date1;
var msec = diff;
var hh = Math.floor(msec / 1000 / 60 / 60);
msec -= hh * 1000 * 60 * 60;
var mm = Math.floor(msec / 1000 / 60);
msec -= mm * 1000 * 60;
var ss = Math.floor(msec / 1000);
msec -= ss * 1000;
alert(hh + ' ساعت ' + mm + ' دقیقه ' + ss + ' ثانیه ');
</script>
نویسنده: تیبا بلاگ
زمان: ۱۸:۱۳:۵۶ - تاریخ: ۱۳۹۵/۰۸/۰۲
ممنون از سایت خوبتون
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- مواردی که به کلی خارج از موضوع این مطلب هستند را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم، غیرضروری و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ خاصی داده نخواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- تمام یادداشت ها بررسی و برای هر کاربر زمان مشخصی جهت پاسخگویی در نظر گرفته می شود، لذا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.




5 × 5
 refresh
نکته:
با توجه به تاریخ نگارش آموزش های سایت و پیشرفت تکنولوژی های مرتبط با وب در سالیان اخیر، محتوای برخی از مطالب قدیمی ممکن است نیاز به ویرایش و به روزرسانی داشته باشد که این کار هم زمان با تهیه نسخه جدید «وبگو» به مرور در حال انجام است، لطفا در استفاده از مطالب سایت به این نکته دقت داشته و حتی المقدور از چند منبع مختلف استفاده نمائید.
آخرین دیدگاه ها
form مجید بیگلوئی
در:
با سلام میخوام فایل پیوست بسازم برای اسکریپت وبلاگ از کد زیر استفاده میکنم تا فایل را آپلود و اطلاعات را به دیتابیس ارسال...
۱۰:۰۲:۵۸ ۱۳۹۸/۱۲/۰۶

form پیمان نقی پور
در:
سلام میخواستم بدونم فیلتر نویسی بورس هم با همین زبان جاوا انجام میشه؟ چطور میشه شرطی تعیین کرد تا نتیجه فیلتر در هنگام...
۱۸:۲۱:۳۲ ۱۳۹۸/۱۲/۰۵

form mahdi
در:
سلام استاد ، css رو تسلط کامل دارم تا حدودیش هم به لطف شما و جاوا اسکریپت هم چند روزی میشه شروع کردم به آموزش...
۱۵:۴۸:۳۳ ۱۳۹۸/۱۲/۰۵

form amin
در:
با سلام آدرس مطالب سایت وبگو بعد از ای دی پست عنوان فارسی هست ولی زمانی که به سورس کد پست نگاه میکنیم قسمت فارسی...
۱۴:۵۹:۴۴ ۱۳۹۸/۱۲/۰۵

form mahdi
در:
سلام استاد ، لینک آموزش مقدماتی جاوا اسکریپت توی منوی بالایی خرابه ، به وظیفه شهروندیم عمل کردم :)
۱۵:۰۹:۰۰ ۱۳۹۸/۱۲/۰۴

form aseman
در:
با سلام . میخوام هر وقت توی تکس باکسم عدد 1 وارد شد در خروجی تگ p معادل حروفی یک رو بهم بده. مثلا:...
۱۴:۴۵:۲۹ ۱۳۹۸/۱۲/۰۴

form mahdi
در:
سلام استاد ، گذاشتمش توی این وبلاگ رمزش هم ******* هستش ، واقعیت فهمیدم که میشه درستش کرد ولی چجوریشو نفهمیدم :) خیلی ممنون...
۱۳:۲۰:۱۴ ۱۳۹۸/۱۲/۰۴

form mahdi
در:
سلام استاد، وبلاگ ندارم، اینا رو برای یادگیری و یه هدف دیگه دارم سوال میکنم، مطالب مرتبط رو پیدا کردم راهشو، فقط قسمت ارسال نظر...
۲۰:۱۵:۰۲ ۱۳۹۸/۱۲/۰۳

form نیما
در:
سلام. من میخوام با استفاده از یک input مقدار عددی رو از کاربر دریافت کنم و بعد از ضرب در عددی خاص که خودم تعیین...
۱۸:۰۷:۰۴ ۱۳۹۸/۱۲/۰۳

form وحید
در:
سلام وقت بخیر حدود شش ماه هست با فیلتر شکن کار میکنم به اسم Lightvpn. یک روز هست این خطا رو میده و...
۱۸:۰۰:۰۶ ۱۳۹۸/۱۲/۰۳

form mahdi
در:
سلام ، استاد شرمنده یه سوال دیگه هم داشتم مثل قبلی ، مطالب مرتبط که انتهای هر پست میاد رو چطوری با جاوا اسکریپت توی...
۲۳:۴۶:۲۳ ۱۳۹۸/۱۲/۰۲

form mahdi
در:
سلام استاد عزیز ، توی لوکس بلاگ میشه چیزی مثل پست های شاخص که توی وردپرس هست با جاوا اسکریپت درست کنیم که مثلا داخل...
۲۳:۱۴:۴۰ ۱۳۹۸/۱۲/۰۲

form mahdi
در:
سلام استاد ، بخش نظرات قالب لوکس بلاگ یعنی طرح کل صفحش رو چطوری دسترسی داشته باشیم که خودمون بتونیم طراحیش کنیم ؟ منظورم اینه...
۱۸:۱۱:۳۳ ۱۳۹۸/۱۲/۰۱

form علیرضا سهیلی
در:
سلام من وقتی میخوام شارژ بزنم این کد واسم میاد معنیش یعنی چی
۱۴:۳۳:۱۴ ۱۳۹۸/۱۲/۰۱

form mahdi
در:
سلام استاد ، فهمیدم چطوریه نیازی به پاسخ نیست، چقدرم ساده بود :) مرسی
۰۹:۴۸:۴۹ ۱۳۹۸/۱۱/۳۰
آگهی