2010-07-21 20 views
14

के बिना किसी भी दिनांक स्ट्रिंग को टाइमस्टैम्प में कनवर्ट करें मुझे एक्सएमएल और आरएसएस फ़ीड मिल रहा है और डेटा को डेटाबेस में डाल रहा है। मैं दो अलग अलग तारीख प्रारूपों में अब तक दौड़े हैं ...टाइमज़ोन

Wed, 21 Jul 2010 00:28:50 GMT 

और

2010-07-20T17:33:19Z 

मुझे यकीन है कि अधिक नहीं होगा हूँ। तिथि के लिए मेरा postgresql डेटाबेस समय क्षेत्र के बिना टाइमस्टैम्प है। क्या php में कोई मौजूदा फ़ंक्शन है या क्या किसी भी दिनांक स्ट्रिंग को समय क्षेत्र के बिना टाइमस्टैम्प में परिवर्तित करने की कोई प्रक्रिया है (वाई-एम-डी एच: i: s)? strtotime साथ

उत्तर

18

उपयोग date:

$date = date('Y-m-d H:i:s', strtotime('Wed, 21 Jul 2010 00:28:50 GMT')); 
echo $date; 

परिणाम:

2010-07-21 05:28:50 

$date = date('Y-m-d H:i:s', strtotime('2010-07-20T17:33:19Z')); 
echo $date; 

परिणाम:

2010-07-20 22:33:19 
5

मुहर यूटीसी माना जाता है।

$dt = new DateTime('Wed, 21 Jul 2010 00:28:50 GMT'); 
echo $dt->format('U'); // 1279672130 

रूप

$dt = new DateTime('Wed, 21 Jul 2010 02:28:50 CEST'); 
echo $dt->format('U'); // 1279672130 

नोट एक ही टाइमस्टैम्प कि U स्वरूपण विकल्प हालांकि PHP5.3 की आवश्यकता है। जब दिनांक स्ट्रिंग में एक समय क्षेत्र पहचानकर्ता आपूर्ति DATETIME, वस्तु समय-क्षेत्र को पहचानता है, इसलिए जब आप जीएमटी दिनांक समय उदाहरण

echo $dt->format('Y-m-d H:i:s'); 

यह 2010-07-21 00:28:50 वापस आ जाएगी पर निम्नलिखित कहते हैं। आप दिनांक setTimezone() विधि के साथ डेटटाइम ऑब्जेक्ट का टाइमज़ोन बदल सकते हैं।

$dt = new DateTime('Wed, 21 Jul 2010 02:28:50 GMT+2'); 
$dt->setTimezone(new DateTimeZone('UTC')); 
echo $dt->format('Y-m-d H:i:s'); // 2010-07-21 00:28:50 

लेकिन अगर आपको टाइमस्टैम्प की आवश्यकता है, तो इसकी आवश्यकता नहीं है।

11

आपको इसे बिल्कुल परिवर्तित करने की आवश्यकता नहीं है। Postgres मान्यता प्राप्त दिनांक/समय प्रारूपों [यहां] के बारे में

postgres=# create table test_tz (f1 timestamp without time zone); 
CREATE TABLE 
postgres=# insert into test_tz (f1) values ('Wed, 21 Jul 2010 00:28:50 GMT'); 
INSERT 0 1 
postgres=# insert into test_tz (f1) values ('2010-07-20T17:33:19Z'); 
INSERT 0 1 
postgres=# select f1 from test_tz; 
     f1   
--------------------- 
2010-07-21 00:28:50 
2010-07-20 17:33:19 
+3

विवरण (http://www.postgresql.org/docs/current/static/datatype-datetime.html#DATATYPE-DATETIME: PostgreSQL स्वचालित रूप से परिवर्तित करना चाहिए -Input)। –

संबंधित मुद्दे