تنظیم زمان یا timeZone سایت روی تهران و ایران در php
پنجشنبه, ۲۴ تیر ۱۳۹۵، ۰۶:۵۰ ق.ظ
gameover.blog.ir
فکر کنم برای اینکه زمان سایت روی تهران تنظیم بشه باید بخش timeZone از
server رو Iran-Tehran تنظیم کنید. چون ممکنه سرور روی مثلا کانادا باشه
اما بازدید کننده ها بیشترشون از ایران هستن و زمان محلی تهران رو نیاز
دارند.
البته میشه اسکریپتی نوشت که از روی یک time server بیاد ساعت جهانی و
تهران رو بخونه و با PHP و AJAX و innerHTML و ی سری ریز کدهای دیگه اونو
جاساز کنیم توی بخشی از سایت که می خوایم.
مثلا من اسکریپتی ساختم که زمان رو از داخل این page جدا می کنه :
http://www.worldtimezone.com/time/wtzresult.php?CiID=4066&forma=24h
و زمان خالص رو به ما می ده.
ولی سایت woldtimezone احتمالا بعد از چند بار رفرش و درخواست time ما رو بلاک می کنه.
--
پس روش دوم اینه که این کار رو کنیم :
<?php
date_default_timezone_set("Iran");
/*
date_default_timezone_set('Asia/Tehran');
*/
echo date("Y/m/d H:i:s");
?>
اگه timeZone های دیگه رو می خواید به این آدرس برید:
http://www.date-default-timezone-set.com/
--
نکته:
فرض کنید فایلی به اسم process.php داریم :
کد PHP:
//process.php
<?php
date_default_timezone_set("Iran");
echo date("H:i:s");
?>
کد PHP:
<!DOCTYPE html>
<html>
<head>
<script language="javascript">
function myFunction()//my AJAX function
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","process.php",true);//run process.php and GET results
xmlhttp.send();//Display the received data over current webpage
}
var myVar=setInterval(function(){myTimer()},1000);
function myTimer() {
myFunction();
}
</script>
</head>
<div id="txtHint">info will be listed here...</div>
اگه process.php روی یک سایت دیگه باشه و شما به جاش آدرس آنلاین رو بدید (که روی سایت دیگه ای باشه) ممکنه سرور جلوی شما رو بگیره.
پس دقت کنید که هم process.php و هم index.php توی یک پوشه روی سایت PHP شما باشه.
اگه از کدها سر در نمیارید بگید توضیح بدم.
با جاوا اسکریپت و XMLHTTP اومدیم یک کپی از مرورگر فایرفاکس یا InternetExplorer(از activeX استفاده می کنه) ایجاد کردیم و محاسبات رو پشت پرده انجام دادیم و نتیجه رو send کردیم توی بخش innerHTML از تگی که ID شو معرفی کردیم.
--
در حقیقت توی process.php اومدم time رو برای ایران خوندم. بعدش نتیجه رو اجرا کردم ولی روی مرورگر نشون نداد و با آژاکس GET کردم توی جاوااسکریپت و سپس نتیجه رو ریختم توی DIV.
همچنین یه تایمر نوشتم که هی process.php رو get کنه و زمان رو بدون رفرش کردن صفحه با آژاکس بگیره و فقط بخش div رو ویرایش کنه.
--
به همین سادگی
۹۵/۰۴/۲۴