• 1 رای - 1 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در تاریخ شمسی
#1
من برای درج تاریخ شمسی از فایل پیوستی استفاده میکنم ولی نمیدونم چرا ساعت 00:00:01 رو دو روز میندازه جلو یا یه ساعت جلو تر از ساعت کشور هست ؟ یا ..
درخواست کلاس یا تابع درست pdate) jdate) رو دارم.


فایل‌های پیوست
.php   pdate.php (اندازه 14.71 KB / تعداد دانلود: 5)
طراحی و برنامه نویسی صفحات پویا - Iranveb.net
پورتال جدیدترین اخبار داخل و خارج کشور - Iranveb.com
  پاسخ
تشکر شده توسط :
#2
لطفا تابعی برای مثال از استفاده از اون بکید تا تست کنم
  پاسخ
تشکر شده توسط :
#3
بر روی هاست با این فایلی که پیوست کردم خروجی این کد چنین شد:
کد پی‌اچ‌پی:
<?php
echo pdate('H:i:s A').'<br/>';
echo 
date('H:i:s A');
?>
خروجی :
کد پی‌اچ‌پی:
14:11:27 بعد از ظهر
14
:11:27 PM 
و با http://ospdev.net/frs/mirror.php?id=17
چنین شد:
کد پی‌اچ‌پی:
<?php
echo pdate('H:i:s A').'<br/>';
echo 
date('H:i:s A');
?>
خروجی :
کد:
03:17:27 قبل‏ازظهر
15:17:27 PM
طراحی و برنامه نویسی صفحات پویا - Iranveb.net
پورتال جدیدترین اخبار داخل و خارج کشور - Iranveb.com
  پاسخ
تشکر شده توسط :
#4
در مورد اون pdate که از نشانی دیگه هست اطلاعی ندارم
نسخه ۱.۱ رو همین الان به روز کردم
http://iranphp.org/node/6
می تونید دانلود و ازش استفاده کنید و مشکلی رو فعلا نداشته
در صورتی که مشکلی رو داشت بهم اطلاع بدید
  پاسخ
تشکر شده توسط : zoghal pesarelor HiddeN
#5
یه سوال داشتم.ساعت جهانی که مبداش گرینویچ هست همیشه ثابت هست ؟منظورم چیزی بهش کم و زیاد نمیشه ؟
خب اگه اینطوری باشه با اضافه کردن 30600 به time() دقیقا ساعت و روز و... ایران بدست میاد.
کد پی‌اچ‌پی:
function jalali_to_gregorian($j_y$j_m$j_d

    
$g_days_in_month = array(312831303130313130313031); 
    
$j_days_in_month = array(313131313131303030303029);
    
   

   
$jy $j_y-979
   
$jm $j_m-1
   
$jd $j_d-1

   
$j_day_no 365*$jy div($jy33)*div($jy%33+34); 
   for (
$i=0$i $jm; ++$i
      
$j_day_no += $j_days_in_month[$i]; 

   
$j_day_no += $jd

   
$g_day_no $j_day_no+79

   
$gy 1600 400*div($g_day_no146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */ 
   
$g_day_no $g_day_no 146097

   
$leap true
   if (
$g_day_no >= 36525/* 36525 = 365*100 + 100/4 */ 
   

      
$g_day_no--; 
      
$gy += 100*div($g_day_no,  36524); /* 36524 = 365*100 + 100/4 - 100/100 */ 
      
$g_day_no $g_day_no 36524

      if (
$g_day_no >= 365
         
$g_day_no++; 
      else 
         
$leap false
   } 

   
$gy += 4*div($g_day_no1461); /* 1461 = 365*4 + 4/4 */ 
   
$g_day_no %= 1461

   if (
$g_day_no >= 366) { 
      
$leap false

      
$g_day_no--; 
      
$gy += div($g_day_no365); 
      
$g_day_no $g_day_no 365
   } 

   for (
$i 0$g_day_no >= $g_days_in_month[$i] + ($i == && $leap); $i++) 
      
$g_day_no -= $g_days_in_month[$i] + ($i == && $leap); 
   
$gm $i+1
   
$gd $g_day_no+1

   return array(
$gy$gm$gd); 

پس اینا چی هستن ؟
طراحی و برنامه نویسی صفحات پویا - Iranveb.net
پورتال جدیدترین اخبار داخل و خارج کشور - Iranveb.com
  پاسخ
تشکر شده توسط :
#6
ساعت گرینویچ یه چیز ثابت هست.
به دلیل اینکه تابع pdate (که توسط iranphp.org ارائه شده )از خود تابع date استفاده می کنه از نظر منطقه زمانی دو تاش از نظر زمانی یه خروجی رو میدن
اینکه منطقه زمانی سرور روی چی تنظیم هست روی خروجی تایع date و pdate تاثیر میزاره
برای تنظیم دستی منطقه زمانی متونی از تابع خود php استفاده کنی
http://ir.php.net/manual/en/function.dat...ne-set.php
اون چیزی هم که گفتی چیا هستن تنها تاریخ رو تبدیل می کنه
  پاسخ
تشکر شده توسط : oia pesarelor


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان