# زبان های اسکریپتی > PHP >  تبدیل ساعت گرینویچ به ساعت ایران

## yasgig

با سلام
من با استفاده از explode داده زیر رو که ترکیبی از ساعت و تاریخ است جداسازی می کنم:
<?php
$string = "09:00:00 24/02/1010";
$explode_strings = array();
$explode_strings = explode(" ", $string);
echo $explode_strings[1];
?>
همن طور که می بینید پس از جداسازی فقط ساعت رو چاپ می کنم.این ساعت ساعت گرینویچ هستش.حالا چجور می تونم اونو به ساعت رسمی خودمون یعنی +3.5 تبدیل کنم و سپس چاپ کنم.
با تشکر

----------


## امید امرایی

این به تنظیمات سرور شما مربوط می شه
با پشتیبان فنی سرویس دهندتون تماس بگیرید
شاید بتونید با یک فلگ براحتی این کار رو از طریق htaccess یا php.ini انجام بدید

----------


## guy18iran

حتما نیاز نیست که از طریق php.ini این کار انجام بشه.
برای تبدیل منطقه های زمانی میتونین از کد زیر استفاده کنین که با قرار دادن Asia/Tehran زمان میشه زمان ایران (+3.5).
البته این تابع در نگارش PHP 5.1.0 ارائه شده.  :چشمک: date_default_timezone_set("Asia/Tehran");
البته راه بهتری برای ذخیره سازی زمان توی پایگاه داده وحود داره و اون اینه که از تابع time استفاه بشه. برای مثال:
$date = time();کد زیر یک عدد صحیح 10 رقمی بر حسب زمان Unix میسازه که میتونین از این عدد 10 رقمی هر اطلاعاتی رو بیرون بکشین.
برای ذخیره اون هم نیازه که توی پایگاه داده یک فیلد Int با طول 10 قرار بدین.

----------


## yasgig

ببینید در اصل من 09:00:00 24/02/1010 رو از یه بانک اطلاعاتی می خونم و واسه اینکه کدها طولانی نشه فقط 09:00:00 24/02/1010 رو توی کد بالا قرار دادم.ببینید من 09:00:00 24/02/1010 رو توی بانک اطلاعاتی خودم ذخیره کردم حالا می خواستم وقتی اینو نشون بدم با جمع و تفریق و ... تبدیلش کنم به ساعت ایران.

----------


## Arman_gh

echo date("Y-m-d H:i:s", strtotime('+3 hours 30 minutes'));
درباره strtotime
http://php.net/manual/en/function.strtotime.php

----------


## Arman_gh

echo date("Y-m-d H:i:s", strtotime('+3 hours 30 minutes'));
درباره strtotime
http://php.net/manual/en/function.strtotime.php

----------


## Reza1607

strftime("%H:%M",time()+12600);

----------


## yasgig

> کد زیر یک عدد صحیح 10 رقمی بر حسب زمان Unix میسازه که میتونین از این عدد 10 رقمی هر اطلاعاتی رو بیرون بکشین.


چجور می تونم تبدیلش کنم؟
مثلا واسه من 1267099419 رو نشون می ده.

----------


## Reza1607

> چجور می تونم تبدیلش کنم؟
> مثلا واسه من 1267099419 رو نشون می ده.


باید از strftime() استفاده کنی و فرمتی رو که می خوای بهش بده

----------


## guy18iran

> چجور می تونم تبدیلش کنم؟
> مثلا واسه من 1267099419 رو نشون می ده.


با تابع date به راحتی میتونین ازش استفاده کنین.
برای مثال نمایش ساعت و دقیقه:

echo date("H:i", "1267099419"); // prints 13:03

برای اطلاعات بیشتر برای چگونگی نمایش زمان و تاریخ به لینک زیر برید:
http://www.php.net/manual/en/function.date.php

----------


## yasgig

<?php
$time = "08:50:00";
$time_output = ""; 
echo $time_output;
?>
$time_output : این متغییر رو چجوری تعریف کنم تا متغیر $time رو بگیره و +3.30 رو روش اعمال کنه تا ساعت بشه 12:20:00
با تشکر

----------


## guy18iran

این کد رو نگاه بندازین:

$date1 = gmmktime(8, 50, 00, gmdate("n"), gmdate("j"), gmdate("Y")) + 12600; // 12600 seconds = 3.5 hours
echo $date1; // prints unix timestamp
echo "<br>";
$date2 = date("Y/n/j - H:i:s", $date1); // prints given time + (+3.5)
echo $date2
اگر از همون اول زمان رو با زمان Unix وارد میکردید این همه دردتسر نداشتین.  :چشمک:

----------


## yasgig

خیلی مممنون.مشکل حل شد.
اینا رو من وارد نکردم.از یه فایل xml وارد می کنم که دست خودم نیست.
با تشکر

----------


## calej2009

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





<div>
<?php
echo "<font size=\"2\"  color=\"#004040\" face=\"B Nazanin\"><b>";

echo date(" l  d ");
echo date("F Y ");
echo "<br>";
date_default_timezone_set("Asia/Tehran");
echo date ("h:i:s A");
echo "</b></font>";
?>
</div>

----------


## soroush.r70

یه سوال اگه بخوام ساعت - دقیقه - ثانیه رو باهم نشون بدیم حتی داخل localhost هم جواب بده چه راهی وجود داره

با جاوا اسکریپت هست یا با php هم می شه

----------

