PDA

View Full Version : نمايش تاريخ وزمان شمسي



bps20590
چهارشنبه 02 اردیبهشت 1388, 09:24 صبح
با سلام
من از تابع jdf براي تبديل تاريخ ميلادي به شمسي استفاده مي كنم ولي هنگام نمايش تاريخ وزمان سرور يا نمي دانم gmt را نمايش مي دهد درهر حال تاريخ دقيق خودمان را نمايش نمي دهد با يد از چه پارامترهايي در داخل تابع استفاده كنم كه تاريخ وزمان دقيق را بدهد
اينهم دستور فراخواني تابع


<?php echo '<font color="white"> &nbsp;&nbsp;'.jdate("l j F Y - ساعت H:i a").'</font>';

چيزي كه نمايش مي دهد
سه شنبه 1 ارديبهشت 1388 - ساعت 21:30 دقيقه
درحالي كه امروز
چهارشنبه 2 ارديبهشت 1388 - ساعت 9:34 دقيق است

امیـرحسین
چهارشنبه 02 اردیبهشت 1388, 19:21 عصر
این مبدل (http://boplo.ir/php/jdate-function/) رو تست کنید :لبخند: GMT هم میگیره!

bps20590
پنج شنبه 03 اردیبهشت 1388, 17:06 عصر
دوستان عزيز آيا وقتي از مبدل تابع ميلادي به شمسي استفاده مي كنيم تاريخي كه برگردانده مي شود از روي سرور برداشته شده وبر چه اساسي ميباشد يعني واحد زمان برحسب لندن /gmt ويا غيره ميباشد

امیـرحسین
پنج شنبه 03 اردیبهشت 1388, 19:04 عصر
مسلما منبع ساعت سرور هست چون PHP به اطلاعات کلاینت دسترسی نداره مگه اینکه از یه طریقی مثل جاوااسکریپت، زمان رو به سرور برسونید.

توی PHP5 ظاهرا بالاخره ایرانی ها رو به حساب آوردند و بهشون timezone اختصاص دادند. اگه اول اسکریپتتون این تابع رو اجرا کنید، GMT صحیخ set میشه:


date_default_timezone_set('Asia/Tehran');


این هم نتیجه برای نمونه. ساعت سرور لوکال من 4:30 دقیقه عقبتر بود:

echo date("h:i:s");

echo "<br />";

date_default_timezone_set('Asia/Tehran');

echo "<br />";

echo date("h:i:s");

bps20590
جمعه 04 اردیبهشت 1388, 17:36 عصر
من متوجه شدم كه تاريخ سرور براساس تاريخ كاليفرنيا آمريكا تنظيم شده حالا مي خواهم 12 ساعت و30 دقيقه به تاريخم ا ضافه كنم اين كار چطور انجام ميشه

امیـرحسین
جمعه 04 اردیبهشت 1388, 21:25 عصر
از طریق همون توابع timezone که گفتم می تونید این کار رو انجام بدید.
روش دوم هم اینه که فاصله زمانی رو به همه timestampها اضافه کنید. مثلا براساس 0 گرینویچ، تهران 12600 ثانیه جلوتره پس باید این عدد رو با همه timestampها جمع کنید ولی روش اول اصولی و راحتتره.
مثال پست قبل رو دقت کنید، یکبار موقعیت پیشفرض رو تهران تعیین می کنید و باقی زمانها روی تهران تنظیم میشه.

این رو هم اضافه کنم که تعیین نکردن timezone در PHP5 خطای سطح پایین ایجاد می کنه!

narsic
شنبه 05 اردیبهشت 1388, 22:23 عصر
با سلام
شما میتوانید هر مقدار زمانی را به صورت mili second به مقدار TimesTamp زمانتون اظافه کنید (در مورد TimesTamp در همین انجمن بارها بحث شده است برای اطلاعات بیشتر جستجو بفرمایید(
موفق باشید