# زبان های اسکریپتی > JavaScript و Framework های مبتنی بر آن >  شمارش معکوس تاریخ در جاوا اسکریپت

## imohammad

میخوام یه Script ای بنویسم که تاریخ معین معکوس بشماره و وقتی 0 شد یه  متننی بنویسه
به اینصورت 21روز و 14 ساعت و 23 دقیقه و 18 ثانیه.

چطوری باید اینکارو کنم؟

----------


## hossin.esm

http://www.dreamincode.net/forums/to...-of-two-dates/

http://www.javascriptkit.com/javatutors/time1.shtml

----------


## imohammad

والا من چیزی سر در نمیارم
اگه ممکنه یه کد بدین که تاریخو بهش بدیم بصورت "25 روز و 18 ساعت و 34 دقیقه و 21 ثانیه" خروجی بده و کم بشه :لبخند گشاده!: 
شرمنده دیگه پررو شدم

----------


## Mr FTHEL

ببین اگر میخوای کد تحویل سال بنویسی بهتره از زمان سرور و php کمک بگیری  :قهقهه:

----------


## hossin.esm

```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
function d()
{  
 var sta="2011/02/20 00:00:00 ";
 var currentTime = new Date();
 var startDate = new Date(sta)
 
 var dif=startDate-currentTime;
 var s=1000;
 var m=1000*60;
 var h=1000*60*60;
 var d=1000*60*60*24;
 
 var days=Math.floor(dif/d);
 dif-=days*d;
 if (dif<=0)dif=0;
 
 var hours=Math.floor(dif/h);
 dif-=hours*h;
 if (dif<=0)dif=0;
 
 var minutes=Math.floor(dif/m);
 dif-=minutes*m;
 if (dif<=0)dif=0;
 
 var seconds=Math.floor(dif/s);
 document.getElementById('d').innerHTML="   day:"+days+"   hours:"+hours+"    minutes:"+minutes+"   second:"+seconds;
}
setInterval("d()",1000);
</script> 

</head>
<body>
    <div id="d"> </div> 
</body>
</html>
```

----------


## imohammad

با تشکر از دوستان حاصل کار تو لینک زیر قرار گرفته
http://forum.joomfa.org/post141745.html
hossin.esm عزیز اگه مایلی مشخصاتت رو بده تا توی تاپیک مربوطه اعلام کنیم
 :لبخند:

----------


## Mr FTHEL

ببخشید اسپم دادم
دوست عزیز برای تاریخ مونده به عید بهتره از سرور و php کمک بگیری با جاوااسکریپت تنها کارت نمیشه  :چشمک:  چون این کد دوست عزیزمون اگر تاریخ عوض کنی عوض میشه دیگه :چشمک:

----------


## imohammad

> ببخشید اسپم دادم
> دوست عزیز برای تاریخ مونده به عید بهتره از سرور و php کمک بگیری با جاوااسکریپت تنها کارت نمیشه  چون این کد دوست عزیزمون اگر تاریخ عوض کنی عوض میشه دیگه


 بله متوجه هستم
php رو مبتدی بلدم فقط چندتا مشکل هست:
1-ساعت سرور رو چطور میشه تو php نمایش داد؟
2-چطور میشه با php کدی نوشت که مثل جاوا اسکریپت هر ثانیه متن صفحه رو تغییر داد؟
ممنون از راهنماییت

----------


## tux-world

حالا اگه بخواییم زمان جاری سرور رو به صورت آنلاین یعنی ثانیه و دقیقه شمار یه جای سایت بذاریم چی؟ ساعت همشه دسترس باشه و نیازی به ساعت سیستم کلاینت نباشه چون بیشتر مواقع اشتباهه

----------


## Mr FTHEL

> بله متوجه هستم
> php رو مبتدی بلدم فقط چندتا مشکل هست:
> 1-ساعت سرور رو چطور میشه تو php نمایش داد؟
> 2-چطور میشه با php کدی نوشت که مثل جاوا اسکریپت هر ثانیه متن صفحه رو تغییر داد؟
> ممنون از راهنماییت






> حالا اگه بخواییم زمان جاری سرور رو به صورت آنلاین یعنی ثانیه و دقیقه شمار یه جای سایت بذاریم چی؟ ساعت همشه دسترس باشه و نیازی به ساعت سیستم کلاینت نباشه چون بیشتر مواقع اشتباهه


برای این کار بهتر هست توی انجمن php برید از اونا کمک بگیرید و همیجا با اوا اسکریپت
و اگر میتونید میتونید بگید ساعت سرور رو اوکی کنن :قهقهه:

----------


## hossin.esm

این هم کد برای گرفتن تاریخ از سرور 

گرفتن تاریخ و ساعت جاری از سرور
var currentTime = new Date("<?php echo date('Y/m/d H:i:s a'); ?>");




```
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
 
</head>
<body>
    <div id="d"> </div>
<script type="text/javascript">
var currentTime = new Date("<?php echo date('Y/m/d H:i:s a'); ?>");
var sta="2011/02/21 00:00:00 ";
var startDate = new Date(sta)
function d()
{  
     currentTime*=1;
    currentTime+=1000;
 var dif=startDate-currentTime;
 var s=1000;
 var m=1000*60;
 var h=1000*60*60;
 var d=1000*60*60*24;
 
 var days=Math.floor(dif/d);
 dif-=days*d;
 if (dif<=0)dif=0;
 
 var hours=Math.floor(dif/h);
 dif-=hours*h;
 if (dif<=0)dif=0;
 
 var minutes=Math.floor(dif/m);
 dif-=minutes*m;
 if (dif<=0)dif=0;
 
 var seconds=Math.floor(dif/s);
 document.getElementById('d').innerHTML="   day:"+days+"   hours:"+hours+"    minutes:"+minutes+"   second:"+seconds;
}
setInterval("d()",1000);
</script> 
 
</body>
</html>
```

----------


## m_karimi

> این هم کد برای گرفتن تاریخ از سرور 
> 
> گرفتن تاریخ و ساعت جاری از سرور
> var currentTime = new Date("<?php echo date('Y/m/d H:i:s a'); ?>");
> 
> 
> 
> 
> ```
> ...


میشه بگید فرق currentTime*=1; و currentTime=currentTime.getTime(); در چیست و چرا وقتی دومی را به کار میبریم زمان تغییر نمی کند.

----------


## hossin.esm

این کد فقط باعث میشه تا مقدار currentTime به عدد تبدیل بشه


```
currentTime*=1;
```

 


وکد یک ثانیه به زمان اضافه میکنه.


```
currentTime+=1000;
```

 



کد تاثیری ندارد و فقط زمان را داخل currentTime میریزد که قبلا شامل ان زمان بوده است.


```
currentTime=currentTime.getTime();  
```

----------


## m_karimi

چرا نباید جواب بدهد؟چون خروجی هر دو یکی است و عدد است. و وقتی هر دو را به اضافه 1000 می کنیم جواب یکسان است.
currentTime*=1;
currentTime+=1000;
و currentTime=currentTime.getTime(); 
currentTime+=1000; یک عدد را می دهد.

----------


## hossin.esm

من هم این کار رو کردم اما  currentTime را به صورت رشته در نظر میگرفت و 1000 را به آخر رشته اضافه میکرد.
شاید هم یک جای کار را اشتباه کرده بودم.

----------


## meysamg

سلام دوستان :

آقا این کد اگه بخوایم وقتی زمان تموم شده منفی نزنه و صفر بشه چجوری باید عمل کنیم ؟



<script type="text/javascript">
	    function d() {
	        var sta = '<%=endtime%>';
	        var currentTime = new Date();
	        var startDate = new Date(sta)


	        var dif = startDate - currentTime;
	        var s = 1000;
	        var m = 1000 * 60;
	        var h = 1000 * 60 * 60;
	        var d = 1000 * 60 * 60 * 24;


	        var days = Math.floor(dif / d);
	        dif -= days * d;
	        if (dif <= 0) dif = 0;


	        var hours = Math.floor(dif / h);
	        dif -= hours * h;
	        if (dif <= 0) dif = 0;


	        var minutes = Math.floor(dif / m);
	        dif -= minutes * m;
	        if (dif <= 0) dif = 0;


	        var seconds = Math.floor(dif / s);
	        document.getElementById('cdtimer').innerHTML = "<table align=\"center\"><tr><td>روز&nbsp;</td><td>&nbsp;ساعت&nbsp;</td><td>&nbsp;دقیقه&nbsp;</td><td>&nbsp;ثانیه&nbsp;</td></tr><tr><td>" + days + "</td><td>" + hours + "</td><td>" + minutes + "</td><td>" + seconds + "</td></tr></table>";
	    }
	    setInterval("d()", 1000);
</script>

----------


## blotran

میتونید یک شرط بگذارید که وقتی شمارنده صفر شد clearInterval رو اجرا کنید.
این آدرس رو هم نگاه کنید.کمکتون میکنه
http://www.w3schools.com/jsref/met_w...arinterval.asp

----------


## meysamg

ممنون ، اما ما اینجا روز ، ساعت و دقیقه و ثانیه  داریم - clearinterval برای هرکروم جدا باید باشه !؟

----------


## meysamg

کسی بلد نیست ؟!

----------


## mansa62

خیلی عالی بود فقط پشت اعداد تک رقمی صفر نداشت ... میشه اینم اضافه کنید؟

----------


## mansa62

خیلی عالی بود فقط پشت اعداد تک رقمی صفر نداشت میشه اینم اصلاح کنید؟

----------

