3 ساعت و نيم دروغ در زمان php

شروع موضوع توسط sama_sally ‏27 سپتامبر 2005 در انجمن PHP

  1. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    [​IMG]

    چرا؟
    سه ساعت و نیم
    همیشه و همه جا میگویند مبدا EPOCH TIME ساعت 12:00:00 نیمه شب پنجشنبه اول ژانویه 1970 است.
    من با اجرای یک کد ساده ، روی سرورهای لوکال لینوکس، ویندوز، روی سرورهای ریموت (REMOTE) لینوکس و ویندوز به این نتیجه رسیدم که ساعت 12 نبوده بلکه ساعت 3:30 دقیقه صبح بوده. یعنی 3 ساعت و نیم بعد از زمانی که گفته میشه. مطمئن هم شدم که در اثر اختلاف ساعت ما با GMT نیست.


    پس دلیل چیه؟
    چرا؟
     
  2. knowhow

    knowhow مدیران قدیمی

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    3,480
    تشکر شده:
    19
    من به همچین چیزی دقت نکرده بودم !!
    بعدش هم همیشه تا حالا از maketime که استفاده می کنم درست می ده زمان رو ! البته از روی زمان webserver
     
  3. mazoolagh

    mazoolagh کاربر فعال شبکه و صفحات استاتیک کاربر فعال

    تاریخ عضویت:
    ‏10 آپریل 2004
    نوشته ها:
    2,940
    تشکر شده:
    7
    همون كد ساده رو كه ميگي كاملش رو بگذار
     
  4. iransbs

    iransbs کاربر تازه وارد

    تاریخ عضویت:
    ‏3 می 2005
    نوشته ها:
    471
    تشکر شده:
    0
    محل سکونت:
    ایران، مازندارن، ساری
  5. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    اين كدها:: براي فارسي و انگليسي:
    PHP:
    <?php
    echo jdate("l j F Y ، g:i:s A"01); //برای فارسی
    echo date("l j F Y , g:i:s A"01); //For English
    ?>
    در ضمن این 01 به عنوان timestamp هست. اگه ما 0 رو بذاریم تابع 0 رو به منفی تعبیر میکنه و تاریخ امروز رو به شما میده پس ما یک ثانیه بعد از شروع EPOCH TIME رو میخوایم.
    اگه جزییات رو هم میخواید:
    PHP:
    <?php
    echo jgetdate(01); // برای فارسی
    echo getdate(01); //For English
    ?>
     
  6. farshidkiani

    farshidkiani کاربر تازه وارد

    تاریخ عضویت:
    ‏9 ژوئن 2005
    نوشته ها:
    34
    تشکر شده:
    0
    محل سکونت:
    0098
    مشکوک می زنه آخه اختلاف ما با ساعت بین المللی هم 3 ساعت و نیم هست...
     
  7. footbal
  8. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
    اهم اهم :D

    من اینو یک ماه پیش فهمیدم

    دقیقاً حق با سالار است
    تاریخ مبدأ PHP مساوی است با : 1970/1/1 3:30:00

    فکر نکنم ربطی هم به 3:30 اختلافمون با GMT باشه چون وقتی می گیم ساعت رو چاپ کن همون ساعت GMT رو چاپ می کنه ! و تازه سرور من هم که ایرانی نیست !

    موضوع همون دروغ گوییه :hmm:
     
  9. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    آره..
    منم اولش كه 3:30 رو ديدم فكرم به اختلاف زمان رفت ولي براي اينكه مطمئن بشم تا ساعت 3 شب نشستم روي هرچي سرور داشتم مال خودم مال دوستام كه اكثرشون توي آمريكا و بعضي ها توي سوئد - آلمان و كانادا بودن امتحان كردم.
    همش 3:30 شد
    اول ژانويه 1970 ساعت 3:30:00 قبل از ظهر.
     
  10. mazoolagh

    mazoolagh کاربر فعال شبکه و صفحات استاتیک کاربر فعال

    تاریخ عضویت:
    ‏10 آپریل 2004
    نوشته ها:
    2,940
    تشکر شده:
    7
    دقيقا به Time Zone شما بستگي داره و اون سه ساعت و نيم به اختلاف ساعت ايران با ساعت مبدا برميگرده.

    اگر Time Zone شما روي GMT +3:30 تنظيم شده باشه نتيجه
    کد:
    <?php
    echo mktime(3, 30, 0, 1, 1, 1970);
    echo "<br>" ;
    echo date("l j F Y , g:i:s A" ,0) ;
    ?>
    
    ميشه
    کد:
    0
    Thursday 1 January 1970 , 3:30:00 AM
    

    حالا Time Zone رو بذارين روي GMT
    خروجي كد بالا ميشه
    کد:
    12600
    Thursday 1 January 1970 , 12:00:00 AM
    

    البته امكان تست روي سرور غير لوكال رو نداشتم. شما هم امتحان كنيد.
    مطمئن باشين اگر اين چيزي كه شما ميگين درست بود حتما كساي ديگه اي تا حالا پيداش كرده بودن و به شماها نميرسيد!
     
  11. miladmovie

    miladmovie مدیر بازنشسته کاربر فعال

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    1,936
    تشکر شده:
    2
    همه قواعد و قرآئن نشون می ده که حق با mazoolagh هست ! :rolleyes:
     
  12. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    احتمالا بايد تسليم بشم
    ولي توي كشورهايي مثل آمريكا و آلمان ساعت سرور رو براي ايران تنظيم نميكنن! :blink:
     
  13. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
    مثل اینکه mazoolagh راست می گه !

    ولی تو اینش موندم آخه سرورهای دیگه که وقتشونو با ایران تنظیم می کنن ؟!

    آهان !!!
    فهمیدم !!
    2 دلیل وجود داره !!
    وقتی هاست می خری کشورت رو می پرسن !
    دلیل دوم هم فعلاً نمی گم (چون می ترسم ضایع شم :blush: )
     
  14. avajang.com .leftjee.ir.right
  15. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    بگو بابا فوقش مثل من ضايع ميشه ديگه!
    ولي آخه آي كيو! مگه يه سرور رو بخاطر يه نفر تغيير ميدن؟؟؟
     
  16. Parsa_361

    Parsa_361 کاربر فعال صفحات داینامیک کاربر فعال

    تاریخ عضویت:
    ‏5 آگوست 2005
    نوشته ها:
    889
    تشکر شده:
    10
    محل سکونت:
    Isfahan, php.ini
    :blush: ...
     
  17. sama_sally

    sama_sally Registered User

    تاریخ عضویت:
    ‏5 آپریل 2005
    نوشته ها:
    2,598
    تشکر شده:
    1
    محل سکونت:
    Essen, Deutschland
    دختر كه نيستي خجالت ميكشي
    شماره بدم خدمتتون؟؟؟؟ :D
    بگو ديگه ناز نكن! :blink:
     
  18. shankimout

    shankimout Registered User

    تاریخ عضویت:
    ‏17 می 2004
    نوشته ها:
    1,491
    تشکر شده:
    3
    محل سکونت:
    ساری . . . . . . . . . . . . . . Permanently Bann
    شاید هاستی که شما دارید مدریش یه آدم $%^()$%&)[email protected]#Q$ هست ؟؟؟
     
zarpopخرید بک لینک