یکشنبه ۳۰ اردیبهشت ۱۴۰۳

Sunday, May 19, 2024 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 مطالب بیشتر:
شروعی بر برنامه نویسی جاوا اسکریپت (JavaScript)
متدهای کار با آرایه در جاوا اسکریپت (JavaScript)
عملگرها (Operators) در جاوا اسکریپت (JavaScript)
کار با متد getElementById و innerHTML در جاوا اسکریپت (JavaScript)
حلقه for و while در جاوا اسکریپت (JavaScript)
دیدگاه
more ۶۲ دیدگاه برای این مطلب ارسال شده است.
more دیدگاه جدید بر اساس تاریخ ارسال در انتهای دیدگاه های موجود نمایش داده می شود.
محمد
۱۸:۳۴ ۱۳۹۱/۱۱/۰۶
سلام
ممنون از وبسایت عالیتون . چه جوری میتونیم تاریخ میلادی رو که در بانک ذخیره کردیم تو وبمون تبدیل به تاریخ شمسی کنیم ؟ با تشکر
سلام
این مورد قبلا در آموزش های کاربردی php توضیح داده شده است، کافی است عبارت تاریخ را در قسمت جستجوی سایت وارد کنید.
علیرضا
۲۲:۴۷ ۱۳۹۱/۱۱/۰۸
سلام. ممنون از اموزشهای خوبتون. من همه اموزشهاتون را دنبال میکنم و در php خیلی پیشرفت کرده ام و دنبال یه پروژه کامل مثلا یه فروشگاه با سبد خرید و امکانات کامل میگردم برای یادگیری. البته چند پروژه دانلود کرده ام که پیشرفته نیستند. اگه امکان داره چنین پروژه ای را حتی اگر شده برای فروش در سایت بگذارید . ممنون
سلام
از نظر لطف شما ممنونیم، اما درباره یادگیری با پروژه، یک سیستم فروشگاهی چیزی جدا از مباحث php نیست، یعنی اگر برنامه نویسی و مباحث مهم آن را (مانند مبحث سشن و کوکی ها، توابع و آرایه ها، کار با حلقه ها و...) خوب یاد بگیرید، می توانید هر نوع ایده ذهنی خود را به برنامه تبدیل کنید، البته مسلما باید وقت بگذارید و چند و چون کار را بررسی کنید، پیشنهاد ما این است که از پروژه های کوچک و آزمایشی شروع کنید تا کم کم تجربه لازم را به دست آورید.
سعید
۱۸:۲۹ ۱۳۹۱/۱۱/۱۰
سلام
همانطور که میدانید یکی از بخشهای اصلی یک سایت ،ویرایشگر متن آن میباشد که ما بتوانیم مطالب خود را روی سایت ارسال نماییم . ایا در حال حاضر ویرایشگر فارسی شده ای داریم ؟ من از تینی میسک استفاده میکنم ولی ابزارهاش چپ چین هستند و متنی که فارسی توش تایپ میکنیم از چپ شروع میکنه به نوشتن که جالب نیست . لطفا ادرس دانلودش رو قرار بدین . ممنون
سلام
متاسفانه تا آنجا که می دانیم ادیتور فارسی رایگانی وجود ندارد و ساختن آن هم به تجربه و مهارت بالا در جاوا اسکریپت نیاز دارد، اما ادیتور Tiny MCE قابلیت های زیادی برای سفارشی سازی دارد و با کمی آشنایی و مراجعه به انجمن های آن (به زبان انگلیسی) می توان موارد دلخواه را تغییر داد، به فرض برای مورد شما باید این تابع را در انتهای قسمت tinyMCE.init اضافه کنید.
function SetEditor(){
var id = tinyMCE.getInstanceById('textarea-id');
id.getBody().style.backgroundColor = "#FFFFFF";
tinyMCE.get('textarea-id').getBody().dir ="rtl";
}
البته ما برای نمونه هم رنگ پس زمینه و هم چینش ادیتور را تنظیم کرده ایم، سپس در قسمت General options (موارد داخل tinyMCE.init) تنظیمات زیر را نیز اضافه کنید.
oninit : "SetEditor",
فراموش نکنید که به جای textarea-id باید آی دی فیلد متنی خود را وارد کنید.
مينا
۱۰:۳۸ ۱۳۹۱/۱۱/۱۱
سلام. من حدود 6 ماهه كه php كار ميكنم و توانايي طراحي برنامه نويسي يه سايت با امكانات سايتهاي معمولي يا فروشگاه را دارم البته به صورت رويه گرا نه شي گرا . ميخواستم ببينم اينكه برنامه هاي من شي گرا نيستند اشكال دارد . البته دارم شروع ميكنم به يادگيري حرفه اي. چون جديدا دارم براي يه اموزشگاه زبان، سايت طراحي ميكنم ولي ميترسم اينكه اين سايت كدهاي ساده دارد و شي گرا نيست يه نقص در كار من باشد . لطفا با تجربه اي كه داريد من را راهنمايي كنيد. سپاس
سلام
صرف استفاده نکردن از شیوه شی گرا در برنامه نویسی نقص محسوب نمی شود (حتی در برخی مواقع مزیت هایی نیز دارد)، مهم این است که شما برنامه هایتان را (چه به شیوه عادی و چه شی گرا) طوری بنویسید که قابلیت توسعه پذیری، یکپارچگی و طبقه بندی ساختاری داشته باشند، البته این عبارات چیز پیچیده ای نیستند، منظور این است که طوری برنامه بنویسید که برای تغییرات بعدی حداقل زحمت و صرف وقت نیاز باشد، به طور مثال کدنویسی به صورت درختی و مشخص شده باشد، فایل های زبان به صورت مجزا وارد شوند، نام جداول و ستون های دیتابیس به صورت مجزا دسته بندی شده باشند، موارد تکراری حتی الامکان به صورت تابع و مجزا نوشته شوند و...
به این دلیل ها است که برنامه نویسی شی گرا (در صورت اینکه بر آن تسلط پیدا کنید) برای پروژه های به اصطلاح سنگین توصیه می شود، چون ماهیتا به یکپارچه شدن برنامه نویسی و قابلیت توسعه پذیری آن کمک می کند، خواندن و فهمیدن کدها آسانتر می شود و ...
نتیجه اینکه پروژه ها را به هر دو شیوه می توان نوشت، اما اگر به شیوه شی گرا تسلط دارید، برای برنامه های پیچیده و سنگین بهتر است از آن استفاده کنید، اما اگر استفاده نکنید هم مسئله ای نیست، مهم این است که سایر مواردی که گفته شد را رعایت کنید تا بعدا دچار زحمت نشوید.
مینا
۱۶:۳۹ ۱۳۹۱/۱۱/۱۱
ممنون از راهنمایی مفیدتون و وقتی که برای پاسخ من گذاشتید. پیروز باشید.
۱۰:۲۳ ۱۳۹۱/۱۱/۱۴
سایت فوق العاده کاربردی دارین.
با تشکر از تمامی مطالب مفیدتون.
عليرضا
۱۵:۴۵ ۱۳۹۱/۱۱/۱۴
اگر امكان داره روش راه اندازي سايت دو زبانه يا چند زبانه با php را توضيح دهيد . اگر نوع عملكردشان فرق داشته باشد و مثلا بخش فارسي شامل بخشهايي باشد كه بخش انگليسي نيازي به انها نداشته باشد بايد چكار كرد. يعني ديتابيس بخش فارسي با انگليسي كمي متفاوت باشد. ممنون از وقتي كه صرف اموزش ميكنيد . پيروز باشيد .
اگر از CMS های موجود می خواهید استفاده کنید، بهترین روش نصب دو CMS در دو دایرکتوری به فرض فولدر fa و en است، اما اگر منظورتان نوشتن سیستم سایت با php است، این کار در درجه اول نیاز به تجربه و مهارت کافی در برنامه نویسی دارد، سپس می توانید فایل های زبان را به صورت فایل خارجی و روش هایی مانند استفاده از define تعریف کرده و از مقادیر آن در کل برنامه استفاده نمائید، به فرض برای عبارت "نام خود را وارد کنید" عبارتی قراردادی به صورت زیر در نظر می گیریم:
define('SITE_INTER_NAME', 'نام خود را وارد کنید');
و به جای عبارت فارسی از مقادیر SITE_INTER_NAME در هر جا از کدهایمان نیاز بود استفاده می کنیم، به این ترتیب می توان در فایل زبان دیگری (به فرض انگلیسی) معادل آن زبان را برای SITE_INTER_NAME در نظر گرفت و به این ترتیب در هنگام اجرای کدها، متناسب با لینک درخواستی (زبان انتخاب شده)، فایل مورد نظر را فراخوانی نمود، در مورد امکانات نیز باید سیستم خود را طوری بنویسید که امکانات به صورت داینامیک قابل غیر فعال سازی باشند.
مهتاب
۱۹:۰۴ ۱۳۹۱/۱۱/۱۶
تشکر از مطالب مفیدتون. اگه ممکنه درباره برنامه ای که بتواند در پستها ، جدول اینزرت کند توضیح دهید. مثلا همین صفحه سایتتان را در نظر بگیرید، این پست شما شامل عنوان و مطلب و ادامه مطلب و تصویر بندانگشتی و ...است که در mysql ذخیره میشوند و شما از طریق بخش مدیریت این پست را ایجاد می کنید.حالا فرض کنید در این پست می خواستید بعضی مطالب را در یک جدول نمایش دهید ، پس باید در قسمت مدیریت پستها یک قسمت برای درج جدول در پست داشته باشید. سوال من این است که چطور یک صفحه مدیریت پست در admin داشته باشیم که دارای چنین امکانی باشد. (مثل افزونهwp-table-reloaded در وردپرس که با ان در پستهایمان جدول اینزرت می کنیم).
سلام
برای این منظور و در کل برای ایجاد محیط ارسال مطلب، معمولا از امکانات ادیتورهای (wysiwyg) تحت وب مانند TinyMCE، CKEditor و... استفاده می شود، البته برای درج جدول بهتر است آن را در یک برنامه حرفه ای، کدنویسی کنید و سپس کد آن را به صورت html در قسمت مطالب وارد نمائید.
۲۳:۲۲ ۱۳۹۱/۱۱/۱۸
سلام
واقعا ازتون به خاطر طراحی و مدیریت وبسایت فوق العاده وبگو تشکر می کنم. من مطالبتون رو دنبال می کنم و واقعا برام مفید بوده.
وبسایت من در مورد تبلیغات هست و حیفم اومد که وبسایت شما را تبلیغ نکنم به خاطر همین یه پیشنهاد دارم:
اگه مایلید با من تبادل بنر کنید بهم خبر بدین تا من با کمال میل بنر شما رو در تمام صفحات سایتم نمایش بدم.
با تشکر - شریفی - مدیریت آدونیا
سلام
خیلی ممنون از نظر لطف و پیشنهادتان، در رابطه با تبادل بنر، متاسفانه فعلا برنامه ای برای این کار نداریم.
سودابه
۱۱:۱۹ ۱۳۹۱/۱۱/۲۵
سلام . اگه ممكنه ساخت فرم چند مرحله اي كه اطلاعات را در چند صفحه دريافت كند و در ديتابيس بگذارد را اموزش دهيد .
سلام
پیشنهاد خوبی است، البته اگر با روش دریافت اطلاعات معمولی و ذخیره در دیتابیس آشنا باشید، انجام این کار چندان سخت نیست؛ به هر صورت سعی می کنیم در آموزش های آینده به آن بپردازیم.
علی
۲۰:۱۶ ۱۳۹۱/۱۱/۲۷
سلام
چطوری می تونیم یا چکار باید کرد تا ساعت دقیق را از طریق پی اج پی از سرور سایت گرفته و داخل فانکشن جاوا اسکریپت قرار دهیم ؟
به این دلیل که خود جاوا اسکریپت میاد از تایم سیستم کاربر استفاده میکنه ولی من میخوام مقدار اولیه بهش بدم و سپس خودش از آن به بعد بقیه تایم را پیش ببرد .
سلام
سوال بسیار خوبی بود، برای این کار از نمونه کد زیر می توانید استفاده کنید:
<script type="text/javascript">
<!--
//تنظیم زمان بر اساس تاریخ سرور
var date = new Date(<?php echo date('y, n, j, G, i, s'); ?>);
//استخراج ساعت، دقیقه و ثانیه
var hour = date.getHours();
var minute = date.getMinutes();
var second = date.getSeconds();
//تابع برای محاسبه و نمایش زمان
function ShowTime(){
second++;
if(second.toString().length == 1){
second = '0' + second;
}
if(second>59){
second = '0' + 0;
minute++;
}
if(minute.toString().length == 1){
minute = '0' + minute;
}
if(minute>59){
minute = '0' + 0;
hour++;
}
if(hour.toString().length == 1){
hour = '0' + hour;
}
if(hour>23){
hour = '0' + 0;
}
//خروجی
var output = hour + ":" + minute + ":" + second;
//چاپ خروجی در بلاک
document.getElementById("show_time").innerHTML = output;
}
//اجرای تابع در هنگام بارگذاری صفحه
window.onload = function(){
//فراخوانی تابع اصلی پس از هر ثانیه
setInterval("ShowTime();", 1000);
}
-->

</script>
<!-- بلاک خروجی -->
<div id="show_time"></div>
اتفاقی که در این کد می افتد این است که ابتدا به Date مقادیر پیش فرض می دهیم که همان مقادیر زمان سرور است که با تابع date در php استخراج کرده ایم، سپس موارد مورد نیاز (ساعت، دقیقه و ثانیه) را بر اساس آن تعریف می کنیم، تابع showtime در هر بار اجرا محاسبات را انجام می دهد و خروجی را به بلاک div می فرستد، تابع setInterval هم باعث می شود تا در هر ثانیه، به صورت خودکار تابع showtime فراخوانی شود.
مریم
۲۰:۵۲ ۱۳۹۱/۱۱/۲۷
درود بر شما . اموزشهاتون فوق العاده ست . استاد امکان داره کاربران یک اموزش خاص را سفارش بدهند و شما (البته نه رایگان) آن اموزش را حالا یا در سایت قرار دهید یا ارسال کنید. متاسفانه اکثر سایتهای اموزشی در ایران تعامل کمی با کاربران دارند و بیشتر ، مطالب خودشان را قرار میدهند و نمیتوان یک مطلب را سفارش داد .
سلام
خواهش می کنیم، نظر لطف شما است، در مورد سوالتان، البته سعی ما بر این است که مطالب به صورت عمومی و رایگان باشند، اما اگر مورد خاصی مد نظر شما است، می توانید از بخش تماس با ما، بخش برنامه نویسی وب سفارشتان را با ذکر جزئیات مطرح کنید و نتیجه را نیز از طریق ایمیل پیگیری نمائید.
محمد
۲۲:۲۴ ۱۳۹۲/۰۱/۰۴
همیشه فکر می کردم پست های شما خیلی ابتدایی هستن ولی این یکی فرق می کنه و واقعا فوق العاده بود
ممنون از زحماتتون
:-)
رضا
۱۶:۳۸ ۱۳۹۲/۰۵/۱۲
با سلام
احتراما چگونه ميتوان دو عدد زمان كه در دو textbox است را اخذ كرد و اختلاف آنها را با js محاسبه و در textbox سوم قرار داد
لطفا جواب را به ايميل من ارسال نماييد. باتشكر فراوان
سلام
چه فرمتی از زمان مد نظرتان است؟
خروجی محاسبه باید به چه شکلی باشد؟
تا این لحظه چه تلاشی کرده اید یا چه کدی برای بدست آوردن آن نوشته اید؟
رضا
۱۱:۱۵ ۱۳۹۲/۰۵/۱۴
مثلا در textbox1 : 11:25
در textbox2 : 13:55
وقتي يك باتم را فشار مي دهيم در textbox3 عدد 150 دقيقه را نشان دهد
در textbox3 : 150 min
از نمونه کد زیر استفاده کنید:
<script type="text/javascript">
function TimeDifference(id_1, id_2, id_3){
var value_1 = document.getElementById(id_1).value;
var value_2 = document.getElementById(id_2).value;

var value_1_hour_minute = value_1.split(":");
var value_1_hour = value_1_hour_minute[0];
var value_1_minute = value_1_hour_minute[1];

var value_2_hour_minute = value_2.split(":");
var value_2_hour = value_2_hour_minute[0];
var value_2_minute = value_2_hour_minute[1];

var date_1 = new Date(2000, 0, 1, value_1_hour, value_1_minute);
var date_2 = new Date(2000, 0, 1, value_2_hour, value_2_minute);

if(date_2 > date_1){
var diffrence = date_2 - date_1;
}
else{
var diffrence = date_1 - date_2;
}

var hour = Math.floor(diffrence / 1000 / 60 / 60);
diffrence -= hour * 1000 * 60 * 60;
var minute = Math.floor(diffrence / 1000 / 60);
diffrence -= minute * 1000 * 60;
var second = Math.floor(diffrence / 1000);
var milisecond = diffrence - (second * 1000);

document.getElementById(id_3).value = (hour * 60) + minute;

}
</script>
<input type="text" id="text_1" value="13:55"><br>
<input type="text" id="text_2" value="11:25"><br>
<input type="text" id="text_3"><br>
<input type="button" value="محاسبه" onclick="TimeDifference('text_1', 'text_2', 'text_3');">
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
3 × 6
20 × 20
=
آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
سعیدی
سلام می تونید اینو اصلاح کنید؟ چون من با توضیحات شما یاد نگرفتم خیلی ممنون اگه یکبار اصلاح کنید واسه بعد یاد...
۱۴۰۳/۰۲/۲۲

سعیدی
دست شما درد نکنه وقتی اینطوری تغییر میدم و به class می نویسم کار نمی کنه و ارور میده
۱۴۰۳/۰۲/۲۱

سعیدی
دست شما درد نکنه خیلی خوب بود این یکی رو چطوری فراخوانی کنم؟ این واسه مناسبت هاست خیلی ممنون
۱۴۰۳/۰۲/۱۹

سعیدی
با سلام آیا می شه این تابع رو بصورت class نوشت؟ میخوام وقتی کد ملی میدم با این تابع فراخوانی بشه و شهر...
۱۴۰۳/۰۲/۱۹

پرتو
مگه شما دارین اموزشش رو؟ آدرسش رو میزارید؟ یا اگر سایتی رو میشناسید که آموزش داده باشه معرفی کنید ممنون میشم من خیلی گشتم توی...
۱۴۰۳/۰۲/۱۸

پــرتو
سلام خوبید ؟ خسته نباشید گوشی پدرم شیاومی هست ایمیلمو ثبت کردم داخلش بعد می خواستم حذفش کنم نمیشد می گفت همه داده های توی...
۱۴۰۳/۰۲/۱۶

vip
خیلی ممنونم از شما خیلی عالی شد میشه مثل تبلیغ بلاگفا باشه یعنی زیر صفحه نمایش داده بشه و صفحه رو سیاه نکنه که تا...
۱۴۰۳/۰۲/۰۵

vip
با سلام و خسته نباشید استاد چند وقت پیش این کد رو از شما گرفتم این کد خیلی خوبه و کاربر رو هم...
۱۴۰۳/۰۲/۰۴

پـــرتو
سلام خسته نباشید شرمنده مزاحم میشم یه سوال داشتم می خواستم بپرسم که چرا بلاگفا باز نمیشه برام؟ کلا هر وبلاگی که مربوط به بلاگفا...
۱۴۰۳/۰۲/۰۲

هادی عبداله زاده
با تشکر از شما دوست عزیز با order_id درستش کردم موقع برگشت order_id رو بر می گردونه اینطوری کردم که از طریق اون شناسه...
۱۴۰۳/۰۱/۲۲

هادی عبداله زاده
با تشکر از شما برای ارسال درخواست درست بود و به بانک هم وصل شد فقط برای وریفای چیکارش کنم؟
۱۴۰۳/۰۱/۲۲

هادی عبداله زاده
با سلام و خسته نباشید سال نو شما مبارک من یه کد واسه انتقال به درگاه دارم واسه زرین پال هست ...
۱۴۰۳/۰۱/۲۰

پـــرتو
ببخشید ممنون از جوابتون ولی یه سوال اگر بخوام همون شماره رو با حساب کاربری جدید با همون شماره رو داشته باشم داده های قبلی...
۱۴۰۳/۰۱/۱۹

حسین بلاگ
من یه صفحه ارسال متن دارم میخوام کاربرها وقتی واسه م پیام میدن وقتی روی اون دکمه کلیک می کنن بهشون بگه لطفا صبر...
۱۴۰۳/۰۱/۱۹

شریفی
سلام و عرض احترام سال نو رو بهتون تبریک میگم انشالله سال خوبی داشته باشین یه سرویس وبلاگدهی داریم که قصد داریم به...
۱۴۰۳/۰۱/۱۵

فرهادی
سلام ببخشید یه مشکل دارم این صفحه رو نگاه کنید چند بار توی سورس تکرار شده نمی تونم الگوی توضیحاتش رو استخراج...
۱۴۰۳/۰۱/۱۰

فرهادی
با تشکر از شما یه مشکل دیگه برام پیش اومده واسه این کد وقتی echo می گیرم تومان باهاش میاد وقتی میخوام فقط...
۱۴۰۳/۰۱/۰۹

سید صالح
با سلام و خسته نباشید من یک فرم ساده دارم که کاربر باید پر کنه چون سوال امنیتی و اینا نداره ربات ها همه...
۱۴۰۳/۰۱/۰۷

فرهادی
با تشکر از شما یه سوال دیگه هم دارم توی تعدادی از سایتهای فروشگاهی صفحات سایت مپ به جای لینک صفحات حاوی لینکهایی هستند...
۱۴۰۳/۰۱/۰۶

فرهادی
با سلام و درود سال نو رو بهتون تبریک میگم یه سوال من میخوام لینکهای داخل صفحه sitemap.xml سایتها رو دربیارم کدش رو هم...
۱۴۰۳/۰۱/۰۲
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا ۲۴ ساعت زمان ببرد.