كيف يمكنني الحصول بدقة وقت UTC الحالي عبر Strtotime؟

StackOverflow https://stackoverflow.com/questions/1463912

  •  13-09-2019
  •  | 
  •  

سؤال

في PHP، كيف يمكنني الحصول على الوقت الحالي، في UTC، دون علم الترميز الصلب حيث موفر استضافة الخاص بي هو؟

على سبيل المثال، حاولت ما يلي:

time() + strtotime('January 1, 2000')-strtotime('January 1, 2000 UTC')

وتجد أن تقارير وقت بعد ساعة واحدة قبل وقت UTC الفعلي. حاولت هذا على مقدمي استضافة مختلفين في منطقتين زمنيين مختلفين مع نفس النتائج.

هل هناك طريقة موثوقة (ونأمل أنظفها) لإحضار وقت UTC بدقة؟

أنا أقتصر على PHP 4.4.9 لذلك لا يمكنني استخدام الأشياء الأصلية الجديدة التي تمت إضافتها إلى PHP5.

شكرا مقدما.

هل كانت مفيدة؟

المحلول

يبدو هذا عمل بالنسبة لي. بالطبع، ستحتاج إلى اختبارها على PHP 4 لأن جميع الخوادم الخاصة بي لديها PHP 5، ولكن المطالبات اليدوية يجب أن تعمل هذا من أجل PHP 4.

$t = time();
$x = $t+date("Z",$t);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $x);

أول مرة حولها، لقد نسيت أن يتغير التاريخ بين المكالمة إلى وقت () والتاريخ ().

نصائح أخرى

$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');

هل هذا يعمل ل PHP 4.4.9؟

echo gmdate('Y-m-d H:i:s', time());

أو إذا كنت تريد ذلك لتاريخ محدد:

$time = strtotime('January 1, 2000 UTC');
if($time){
    echo gmdate('Y-m-d H:i:s', $time);
}
$utcTtime = gmmktime();
$unixTimestamp = time();

gmmktime: احصل على TimeStamp UNIX لتاريخ GMT

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top