PDA

View Full Version : ساعت پویا



ehsan3030
سه شنبه 16 شهریور 1389, 14:38 عصر
سلام من میخواهم یک ساعت پویای درست در صفحات وبم قرار بدم(یعنی هر ثانیه تغییر کنه)
با JS که به خاطر نمایش زمان سیستم کلاینت مناسب نیست.
با AJAX و کنترل Timer و از آنجا رویداد Tick ش هم به نظر خیلی احمقانه میاد(هر ثانیه برود و یک Event را در CodeBehind اجرا کند!)
به نظرم باید یک طوری زمان درست را از code behind بگیرم با مثل همچین دستوری:


DateTime Dt = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(Dt, "Iran Standard Time");
و بعد به جاوا اسکریپت داخل صفحه یکجوری انتقال بدم و بعد اون را با جاوا اسکریپت با مثل همچین دستوری هر ثانیه آپدیت کنم :


SetTimeout
//یا
SetInterval
لطفا روش درست کار را به من بگید؟

silverfox
سه شنبه 16 شهریور 1389, 16:55 عصر
زمان رو از سرور میگیری تبدیلش می کنی به زمان محلی بعد با جاوا اسکریپت آپدیتش می کنی همون روشی که گفتیه درسته دیگه!!تو کدینگش سوال داشتی یا همین روش رو می خواستی؟

ehsan3030
سه شنبه 16 شهریور 1389, 18:30 عصر
خوب پس من اینو دارم :


$(document).ready
{
var currentTime = new Date('<%= DateTime.Now.ToString("MMMM d, yyyy HH:mm:ss") %>');
$('#time').text(currentTime.getHours() + ':' + currentTime.getMinutes() + ':' + currentTime.getSeconds());
}

حالا نمیدونم برای بروز شدن در هر ثانیه چی بنویسم؟!!

Himalaya
سه شنبه 16 شهریور 1389, 19:21 عصر
این تابع جاوا تو هدر


<script language="javascript">
var CurrentTime = '<%= Time() %>';
var Time = new Array(3);
var Hour = CurrentTime.split(':')[0];
var Minute = CurrentTime.split(':')[1];
var Second = CurrentTime.split(':')[2];
function SetTime() {

if (++Second > 59) {
Second = 0;
Minute++
}
if (Minute > 59) {
Minute = 0;
Hour++;
}
if (Hour > 23) {
Hour = 0;
}
document.getElementById('lblTime').innerHTML = Hour + ":" + Minute + ":" + Second;

}
</script>

تگ بادی


<body onload="window.setInterval('SetTime()', 1000)">

و یه تگ div برای نمایش


<div id="lblTime">

</div>

و یه تابع توی کدای c#


public string Time()
{
return DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ":" + DateTime.Now.Second.ToString();
}

Himalaya
سه شنبه 16 شهریور 1389, 21:47 عصر
var Time = new Array(3);


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