PDA

View Full Version : نمایش ساعت سرور به کمک جاوا اسکریپت



pioneer2400
جمعه 13 اسفند 1389, 18:21 عصر
سلا دوستان،
من خیلی با جاوا اسکریپت اشنایی ندارم.
دارم روی یه پروژه کوچیک کار میکنم و نیاز دارم تا ساعت نقاط مختلف دنیا رو روی صفحه اول سایتم نشان بدم.

این کار رو به اسانی با کامند های PHP انجام میدم . ولی چیزی که نیاز دارم این هست که ساعت مذکور فعال باشه یعنی اینکه ثانیه و ساعتش کار کنه.
خب معلومه که باید از جاوا اسکریپت کمک بگیرم.
اینجا یه احتمالی پیش میاد که اگه زمان مبدا رو از کلاینت بگیرم ممکنه که ساعت طرف درست ست نشده باشه که این مشکل ایجاد میکنه.
برای اینکار امدم ساعت سرور رو با php گرفتم به جاوا اسکریپت پاس دادم. اینطوری دیگه مشکل تایم زون هم حل میشه و قبل از اینکه مقدار تایم رو به جاوا اسکریپت پاس بدم. تا اینجای کار خیلی خوب پیش میره حتی ساعت اون کشوری رو هم که لازم دارم درست نشان میده ولی مشکل این هست که بعد از این که ساعت رو روی صفحه نشان میده دیکه ساعته کار نمیکنه یعنی اکتیو نیست که ثانیه و دقیقه و بعدم ساعت کار کنه و بشماره. :متفکر:
به نظر شما مشکل از کجاست؟ کدش رو اینجا میزارم که بتونید راحت تر کمکم کنید.



<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>
<?php
echo date_default_timezone_set("Europe/Paris");
$thetimeis = getdate(time());
$thehour = $thetimeis['hours'];
$theminute = $thetimeis['minutes'];
$thesecond = $thetimeis['seconds'];

?>
<br><br>
<span id="clock">
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function getthedate(){

var hours="<?php echo $thehour; ?>";
var minutes="<?php echo $theminute; ?>";
var seconds=<?php echo $thesecond; ?>;


var dn="AM";
if (hours>=12) dn="PM";
if (hours>12) hours=hours-12;
if (hours==0) hours=12;
if (minutes<=9) minutes="0"+minutes;
if (seconds<=9) seconds="0"+seconds;


var cdate="<b>Time: </b> "+hours+":"+minutes+":"+seconds+" "+dn+"<BR>";
if (document.all)
document.all.clock.innerHTML=cdate;
else if (document.getElementById)
document.getElementById("clock").innerHTML=cdate;
else
document.write(cdate);
}
if (!document.all&&!document.getElementById) getthedate();

function goforit(){
if (document.all||document.getElementById) setInterval("getthedate()",1000);
}
window.onload=goforit;
// End -->
</SCRIPT>
</span>

</p>
</body>
</html>



وقتی این کد رو به صورت زیر استفاده کنم مشکلی نداره و ساعت رو نشام میده و شروع به کار هم می کنه.

البته این یکی ساعت لوکال رو نشان میده، ولی من ساعت سرور رو میخام.:ناراحت:



<SCRIPT LANGUAGE="JavaScript" >
<!-- Begin

function getthedate(){
var mydate=new Date();
var hours=mydate.getHours();
var minutes=mydate.getMinutes();
var seconds=mydate.getSeconds();
var dn="AM";
if (hours>=12) dn="PM";
if (hours>12) hours=hours-12;
if (hours==0) hours=12;
if (minutes<=9) minutes="0"+minutes;
if (seconds<=9) seconds="0"+seconds;


var cdate="<b>Local Time</b> "+hours+":"+minutes+":"+seconds+" "+dn+"<BR>";
if (document.all)
document.all.clock.innerHTML=cdate;
else if (document.getElementById)
document.getElementById("clock").innerHTML=cdate;
else
document.write(cdate);
}
if (!document.all&&!document.getElementById) getthedate();

function goforit(){
if (document.all||document.getElementById) setInterval("getthedate()",1000);
}
window.onload=goforit;
// End -->
</SCRIPT>
</span>

hossin.esm
جمعه 13 اسفند 1389, 22:04 عصر
<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>
<?php
date_default_timezone_set("Europe/Paris");

?>
<br />
<span id="clock">
<SCRIPT LANGUAGE="JavaScript">
var mydate=new Date("<?php echo date('Y/m/d h:i:s a'); ?>");
function getthedate()
{


var hours=mydate.getHours();
var minutes=mydate.getMinutes();
var seconds=mydate.getSeconds();
mydate=mydate.getTime()+1000;
mydate=new Date(mydate);
var dn="AM";
if ((hours)>=12) dn="PM";
if (hours>12) hours=hours-12;
if (hours==0) hours=12;
if (minutes<=9)
minutes="0"+minutes;
if (seconds<=9)
seconds="0"+seconds;
var cdate="<b>Time: </b> "+hours+":"+minutes+":"+seconds+" "+dn+"";
if (document.all)
document.all.clock.innerHTML=cdate;
else if (document.getElementById)
document.getElementById("clock").innerHTML=cdate;
else
document.write(cdate);

document.getElementById("clock").innerHTML=cdate;
}

setInterval("getthedate()",1000);

</SCRIPT>
</span>
</p>
</body>
</html>