<script language="JavaScript">
<!--
// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com
var timerID = 0;
var tStart = null;
function UpdateTimer() {
if(timerID) {
clearTimeout(timerID);
clockID = 0;
}
if(!tStart)
tStart = new Date();
var tDate = new Date();
var tDiff = tDate.getTime() - tStart.getTime();
tDate.setTime(tDiff);
document.theTimer.theTime.value = ""
+ tDate.getMinutes() + ":"
+ tDate.getSeconds();
timerID = setTimeout("UpdateTimer()", 1000);
}
function Start() {
tStart = new Date();
document.theTimer.theTime.value = "00:00";
timerID = setTimeout("UpdateTimer()", 1000);
}
function Stop() {
if(timerID) {
clearTimeout(timerID);
timerID = 0;
}
tStart = null;
}
function Reset() {
tStart = null;
document.theTimer.theTime.value = "00:00";
}
//-->
</script>
<body onload="Reset()" onunload="Stop()">
<center><form name="theTimer"><table>
<tr>
<td colspan=3 align=center>
<input type=text name="theTime" size=5>
</td>
</tr>
<tr><td></td></tr>
<tr>
<td>
<input type=button name="start" value="Start" onclick="Start()">
</td>
<td>
<input type=button name="stop" value="Stop" onclick="Stop()">
</td>
<td>
<input type=button name="reset" value="Reset" onclick="Reset()">
</td>
</tr>
</table></form></center>
برای این کار باید بری سراغ جاوا اسکریپت...
البته اگه میخوای مقدر زمان حضور رو محاسبه کنی و بعدش ذخیره کنی (مثلاً تو بانک اطلاعاتی) خوب با همین جاوااسکریپت میشه دیگه... مقدار حضور تو متغییر و بعدش پست
سلام ،
من یه javascript timer سرچ کردم اولین نتیجه جواب سوالتون بود. اینکار خیلی سخت نبود!!!
به هر حال شما میتونید از کد زیر استفاده کنید.
فقط کافیه آبجکت theTime رو در فرمی که قراره اطلاعات رو به فایل پاس بده قرار بدی تا مقدار آن که همان زمان باز بودن صفحه است نیز همراه آن پاس داده شود.
البته میتونید اون button های اضافه رو هم حذف کنید و همینطور متد type از آبجکت theTime رو هم hidden کنید که دیده نشه و هر کار دیگه ...
آقا دمت گرم، کد رو استفاده کردم اما هنوز اون چیزی رو که میخوام روش تست نکردم. کد رو دستکاری میکنم ببینم میشه...
حال دادی
خواهش میکنم قابل شما رو نداشت.
تست کن اگر مشکلی بود بگو امیدوارم بتونم کمک کنم.
بازم سلام
تست کردم جواب نداد![]()
چرا جواب نداد ؟
الان دقیقا مشکلت چیه ؟
یه روش دیگه هم داره اونم با php
اینکه تاریخ ورود به صفحه اول رو توی یه فیلد ذخیره کنی و به صفحه دوم بفرستی
حالا توی صفحه دوم هم تاریخ جاری رو میگیری و از تاریخ صفحه قبل که حالا توی یه متغیر ذخیره شده کم می کنی.
به همین سادگی میشه مدت زمانی که کاربر توی صفحه اول بوده رو به دست آورد
البته یه خورده تلرانس داره یعنی در اصل فاصله زمانی بین نمایش داده شدن صفحه اول و نمایش صفحه دوم رو نشون میده
سخت تر از این رو بگو تا برات حلش کنم.فرض کن 9:55 اومدم تو صفحه، 10:24 میرم بیرون. چه جوری میخوای حسابش کنی
این ساعت رو برای مثال گفتم. سخت تر از اینم هست
حق با شماستسخت تر از این رو بگو تا برات حلش کنم.
شاید کار این تابع رو بلد نباشی mktime
پیشنهاد میکنم یه نگاه به راهنماش توی php بندازی
ولی در کل ، همچین راه تو دل بروای نیست![]()
/*
$h /// ساعت
$m // دقیقه
$h1 // ساعت صفحه اول
$m1 // دقیقه صفحه اول
$h2 // ساعت صفحه دوم
$m2 // دقیقه صفحه دوم
*/
function settime($h1,$h2,$m1,$m2){
if($h1==$h2) $h=00;
elseif($h2>$h1)$h=$h2-$h1-1;
////////////////////////////////
$m=$m1+$m2
if($m>60){
$m=$m-60;
$h=$h++;
}
echo $h.":".$m;
}
سخت تر از این رو بگو تا برات حلش کنم.
شاید کار این تابع رو بلد نباشی mktime
پیشنهاد میکنم یه نگاه به راهنماش توی php بندازی
ولی در کل ، همچین راه تو دل بروای نیست
کد استارت تایمر رو که توی onload صفحه میذارم جواب نمیده
اگر هم کد رو دستکاری نکنم، تایمر از 30:00 شروع میشه
به زبون ساده تر هیچ رقمه کدی که دادی، کاری رو که میخوام انجام نمیده (شایدم من نمیتونم باهاش راه بیام)
به هر حال اگر کد دیگه ای داری ممنون میشم که بذاری
موفق باشی
<body>
<center><form name="theTimer"><table>
<tr>
<td align=center>
<input type=text name="theTime" size=5>
</td>
</tr>
<tr><td></td></tr>
</table></form></center>
<script language="JavaScript">
<!--
// please keep these lines on when you copy the source
// made by: Nicolas - http://www.javascript-page.com
var timerID = 0;
var tStart = null;
function UpdateTimer() {
if(timerID) {
clearTimeout(timerID);
clockID = 0;
}
if(!tStart)
tStart = new Date();
var tDate = new Date();
var tDiff = tDate.getTime() - tStart.getTime();
tDate.setTime(tDiff);
document.theTimer.theTime.value = ""
+ tDate.getMinutes() + ":"
+ tDate.getSeconds();
timerID = setTimeout("UpdateTimer()", 1000);
}
function Start() {
tStart = new Date();
document.theTimer.theTime.value = "00:00";
timerID = setTimeout("UpdateTimer()", 1000);
}
function Stop() {
if(timerID) {
clearTimeout(timerID);
timerID = 0;
}
tStart = null;
}
function Reset() {
tStart = null;
document.theTimer.theTime.value = "00:00";
}
Start()
//-->
</script>
یه تابع برات آماده کردم
میشه کاملترش کرد
karevan جان این کدت که error میده!
بگو چه اروری میده تا درستش کنم