كيفية الحصول على الطابع الزمني الصحيح مع المعلمة is_dst في PHP؟
سؤال
ونحن على خلق طابع زمني يونيكس مع mktime طريقة العطاء التالية السمات:
print_r(mktime(0,0,0,3,1,2009));
print_r(mktime(null,null,null,3,1,2009) / 60 / 60 / 24) . "days");`
وهذا يخلق نتيجة
1235862000
14303.958333333 days
وهذا ينبغي أن يكون 14304 يوما. المشكلة في هذه الحالة هي ساعة فصل الشتاء. يمكنك استخدام المعلمة is_dst، وعندما نستخدم 0 (الافتراضي -1) وهذا يعمل في بعض الأحيان إعطاء بشكل صحيح 14304 أيام نتيجة لذلك.
ولكن في بعض الأحيان وهذا يعطي المشكلة التالية:
<اقتباس فقرة>ومعايير صارمة: mktime () [function.mktime]: تم إهمال المعلمة is_dst
اقتباس فقرة>وليس لدي أي فكرة عما يعنيه وما يمكنني القيام به حيال ذلك. أي فكرة شخص ما؟ لأن ساعة الشتاء يسبب وجع الرأس الرهيب ....
المحلول
gmmktime .
نصائح أخرى
date("I", time());
وسوف اعطيكم 1 إذا الصيفي و0 إذا كان لا.
ومن صفحة دليل فب:
و"إن كل دعوة إلى وظيفة الوقت / التاريخ تولد E_NOTICE إذا كانت المنطقة الزمنية غير صالحة، و / أو رسالة E_STRICT في حالة استخدام إعدادات النظام أو متغير البيئة TZ انظر أيضا <لأ href =" HTTP: //php.net/manual/en/function.date-default-timezone-set.php "يختلط =" نوفولو noreferrer "> date_default_timezone_set () "
وهذا ربما يعني أنك يجب أن تستخدم date_default_timezone_set () و> سابقا وتخطي المعلمة is_dst