الذي فب التاريخ والوقت أدوات لاستخدامها لتعويض GMT

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

  •  06-07-2019
  •  | 
  •  

سؤال

ويبدو أن هناك العديد من الطرق للاقتراب تاريخ ووقت تلفيق في بي. أنا عادة فقط كل التعامل مع التوقيت المحلي. اليوم، ولست بحاجة للعمل في UTC.

وأنا الاستعلام ضد API، والبيانات التي تعطيني حول سجل تعسفي هو: تم انشاؤه: الخميس، 18 يونيو 2009 21:44:49 +0000 * الموثقة باسم 'UTC وقت إنشاء سجل'

وutc_offset: -28800 * الفرق بين المستخدمين إعادة

وأنا في حاجة لتحويل ذلك الى سلسلة بسيطة لتظهر للمستخدم في أي وقت وتاريخ تقديم البيانات في الوقت المحلي.

وأعتقد أن يترجم فوق ل، إذا كان في ولاية كاليفورنيا على سبيل المثال: الخميس 18 يونيو 2009 02:44:49

وهدفي هو الحصول على قيمة الوقت الذي يمكن أن تمر حتى الآن () لتنسيق سهلا في شكل "جميلة".

هل هو حقا بهذه البساطة تحويل الوقت تم إنشاؤها أعلاه إلى ثانية من العصر، مضيفا في الإزاحة، ويمر بعد ذلك أنه حتى الآن ()؟ أي في gothcha لأبحث عنه؟

$created_time = 'Thu, 18 Jun 2009 21:44:49 +0000';
$utc_offset = -28800;
$seconds = strtotime($created_time);
$localized_time = $seconds + $utc_offset;

echo date(DATE_RFC822, $localized_time);

والشكر

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

المحلول

وPHP أن تفعل الشيء تلقائيا نيابة عنك. يمكنني أيضا أن نوصي بشدة باستخدام الكائن التاريخ والوقت بدلا من ذلك.

و

$dt = new DateTime($created_time); echo $dt->format(DATE_RFC2822);

و

والتاريخ والوقت وظائف PHP هي المنطقة الزمنية علم .. تأكد من أنك على النسخة الأخيرة من PHP، لأن الكثير من العمل الذي تم القيام به لتحسين هذه النظم.

نصائح أخرى

ويمكنك استخدام date_default_timezone_set للتبديل بين المناطق الزمنية. في حالتك، هل تمرير المعلومات الزمنية من التشكيل الجانبي للمستخدم. على النحو الموصى به إيفرت، إذا كنت تستخدم PHP 5> = 5.2، يرجى استخدام أكثر تقدما التاريخ والوقت الطبقة .

<?php
echo date('h:i:s')."\n";
date_default_timezone_set('Europe/Paris');
echo date('h:i:s')."\n";
date_Default_timezone_set('UTC');
echo date('h:i:s')."\n";
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top