ورود

View Full Version : سوال: ساعت رسمی کشور



bnnoor
دوشنبه 12 دی 1390, 15:52 عصر
سلام دوستان
من میخواستم از طریق جاوا اسکریپت ساعت رسمی رو بدست بیارم که این ساعت ارتباطی به ساعت کاربر سایت نداشته باشه . ایا امکانش هست؟ اکثرا خوندم باید از زبان اسکریپتی کمک بگیرم ولی من نمیخوام اینکارو بکنم آیا امکانی هست که با توجه به تابع time و ساعت گرینویچ و اختلافش با ایران ساعت رو دقیق بصورت ( ساعت و دقیقه و ثانیه ) و جداگانه بدست بیارم ؟

mehdi.mousavi
شنبه 17 دی 1390, 11:52 صبح
سلام.
اینکارو می تونید سمت Client انجام بدید، اما از اونجاییکه در این کار باید از ساعت سیستم کاربر بهره گرفته یشه و کاربر میتونه ساعت سیستم رو به نادرستی Set کرده باشه، نمیشه روی اون تکیه کرد. جای اینکار، شما می تونید درخواستی به این URL ارسال کنید و ساعت دقیق رو دریافت کنید:

http://json-time.appspot.com/time.json?tz=Asia/Tehran

برای اینکار نیز در jQuery، می تونید بدین شکل عمل کنید:

$(function () {
$.getJSON("http://json-time.appspot.com/time.json?tz=Asia/Tehran&callback=?", function (data) {
alert(data.datetime);
});
});


موفق باشید.

ricky22
شنبه 17 دی 1390, 14:58 عصر
سلام.
اگر از روشی که آقای موسوی بیان کردن نتیجه نگرفتید علتش این هست که سایت فوق به ایران سرویس نمیده.
می تونید از این وب سرویس هم استفاده کنید.
http://www.earthtools.org/webservices.htm#timezone

binboy
پنج شنبه 22 دی 1390, 15:58 عصر
سلام. از این کد استفاه کن (با قابلیت نمایش ثانیه بطور زنده و تغییر خودکار در زمانهای تغییر ساعت در ایران.):
نمونه:http://www.neginph.com/


var interval = self.setInterval("clock()", 1000);

function clock() {
var date = new Date();
var hourOffset = 3;
date.setUTCHours(date.getUTCHours(), date.getUTCMinutes());
var time = date.getTime();
date.setUTCFullYear(date.getUTCFullYear(), 9, 22);
var dstStart = date.getTime();
date.setUTCFullYear(date.getUTCFullYear(), 3, 21);
var dstEnd = date.getTime();
if (time > dstStart && time < dstEnd) hourOffset = 4;
date.setUTCHours(date.getUTCHours() + hourOffset, date.getUTCMinutes() + 30);
var output = date.getUTCHours() + ":" + date.getUTCMinutes() + ":" + date.getUTCSeconds();
document.getElementById("clock").innerHTML = output
}