2012-05-15 12 views
9

यहाँ datetime तार के साथ मैं काम कर रहा हूँ का एक उदाहरण है:इस डेटाटाइम स्ट्रिंग के समय एक घंटा कैसे जोड़ें?

Tue May 15 10:14:30 +0000 2012 

यहाँ यह पर एक घंटे में जोड़ने के लिए मेरी प्रयास है:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->add(new DateInterval('P1h')); 

लेकिन दूसरी पंक्ति त्रुटि है कि यह नहीं कर सके 'देता है टी परिवर्तित नहीं किया जा सकता है।

धन्यवाद।

उत्तर

46

आप समय विनिर्देश भाग से पहले एक T जोड़ना चाहिए:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->add(new DateInterval('PT1H')); 

देखें DateIntervalconstructor प्रलेखन: "। अवधि"

प्रारूप के लिए, पत्र पी के साथ शुरू होता प्रत्येक अवधि अवधि एक पूर्णांक मान द्वारा प्रतिनिधित्व की जाती है जिसके बाद एक अवधि डिजाइनर होता है। यदि अवधि में समय तत्व होते हैं, तो विनिर्देश का वह हिस्सा अक्षर टी से पहले होता है।

(जोर जोड़ा)

+0

+1 DateInterval हमेशा पसंद किया जाता है। –

2

strtotime() का उपयोग करना:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$time = strtotime($time) + 3600; // Add 1 hour 
$time = date('D M j G:i:s O Y', $time); // Back to string 
echo $time; 
8

पिछला जवाब काम करते हैं। हालांकि, मैं आमतौर पर अपने बाहरी होस्टेड वेबसाइटों में डेटाटाइम संशोधित का उपयोग करता हूं। अधिक जानकारी के लिए php manual देखें। कोड के साथ प्रस्तावित है, यह इस तरह काम करना चाहिए:

$time = 'Tue May 15 10:14:30 +0000 2012'; 
$dt = new DateTime($time); 
$dt->modify('+ 1 hour'); 

वस्तु उन्मुखीकरण का उपयोग नहीं कर उन लोगों के लिए, बस इसका इस्तेमाल इस तरह से (पहली पंक्ति दिनांक समय सिर्फ इस धागे को somethng नया लाने के लिए, मैं इसका इस्तेमाल सर्वर की जांच करें समय):

$dt = new DateTime("@".$_SERVER['REQUEST_TIME']); // convert UNIX epoch to PHP DateTime 
$dt = date_modify($dt, "+1 hour"); 

बेस्ट,

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