स्ट्रिंग डेटाइम को स्ट्रिंग PHP में बदलें


225

मैंने पहले ही बहुत सी साइट पर शोध किया है कि मैं PHP डेटाइम ऑब्जेक्ट को स्ट्रिंग में कैसे बदल सकता हूं। मैं हमेशा "स्ट्रिंग टू डेटटाइम" देखता हूं न कि "डेटटाइम टू स्ट्रिंग"

PHP DateTime को प्रतिध्वनित किया जा सकता है, लेकिन क्या मैं अपने DateTime को PHP स्ट्रिंग फ़ंक्शन के साथ संसाधित करना चाहता हूं।

मेरा सवाल यह है कि मैं इस तरह के कोड से शुरू होने वाली स्ट्रिंग में PHP डेटटाइम ऑब्जेक्ट कैसे बना सकता हूं:

$dts = new DateTime(); //this returns the current date time
echo strlen($dts);

2
आप अपने DateTime को स्ट्रिंग फ़ंक्शंस के साथ प्रोसेस क्यों करना चाहते हैं? आप क्या खत्म करने की कोशिश कर रहे हैं?
मगफ्रीडा

2
डेटाइम वेलिडेटर के कुछ प्रकार? php में
नेटोरिका

जवाबों:


412

आप कक्षा की formatविधि का उपयोग कर सकते हैं DateTime:

$date = new DateTime('2000-01-01');
$result = $date->format('Y-m-d H:i:s');

यदि formatकिसी कारणवश विफल हो जाता है, तो यह वापस आ जाएगा FALSE। कुछ अनुप्रयोगों में, यह विफल होने वाले मामले को संभालने के लिए समझ में आता है:

if ($result) {
  echo $result;
} else { // format failed
  echo "Unknown Time";
}

3
+1 यह काम करता है। क्या आप यह भी बता सकते हैं कि इस रूपांतरण को करने से पहले अशक्त (एक ही पंक्ति में) की जांच कैसे करें। धन्यवाद!
वाट

2
हे @ मत्त, अच्छी बात! मैंने उदाहरण का विस्तार किया है कि यह दिखाने के लिए कि विफल मामले को कैसे संभाला जा सकता है।
19

3
आप समय क्षेत्र भूल गया, बजाय का उपयोग $date->format('c')या $date->format('Y-m-d H:i:s Z')या$date->format('Y-m-d H:i:s T')
टीमो Huovinen

1
कथन का उपयोग करके आपको क्या उपयोग करने में सक्षम होना चाहिए -> प्रारूप? यह Zend में कुछ याद आ रही है
रसायनज्ञ

1
आप $result = (new DateTime('2000-01-01'))->format('Y-m-d H:i:s');PHP 5.4 के बाद से इस छोटे रूप का उपयोग कर सकते हैं । यहां देखें: docs.php.net/manual/en/migration54.new-features.php तत्काल पर क्लास के सदस्य का उपयोग जोड़ा गया है, जैसे (नया फू) -> बार ()।
FFirmenich

17

सबसे आसान तरीका मुझे मिल गया है:

$date   = new DateTime(); //this returns the current date time
$result = $date->format('Y-m-d-H-i-s');
echo $result . "<br>";
$krr    = explode('-', $result);
$result = implode("", $krr);
echo $result;

मुझे उम्मीद है यह मदद करेगा।



15

इसके date_d.phpसाथ उपयोग करने के लिए कुछ पूर्वनिर्धारित प्रारूप formatहैं:

define ('DATE_ATOM', "Y-m-d\TH:i:sP");
define ('DATE_COOKIE', "l, d-M-y H:i:s T");
define ('DATE_ISO8601', "Y-m-d\TH:i:sO");
define ('DATE_RFC822', "D, d M y H:i:s O");
define ('DATE_RFC850', "l, d-M-y H:i:s T");
define ('DATE_RFC1036', "D, d M y H:i:s O");
define ('DATE_RFC1123', "D, d M Y H:i:s O");
define ('DATE_RFC2822', "D, d M Y H:i:s O");
define ('DATE_RFC3339', "Y-m-d\TH:i:sP");
define ('DATE_RSS', "D, d M Y H:i:s O");
define ('DATE_W3C', "Y-m-d\TH:i:sP");

इस तरह का उपयोग करें:

$date = new \DateTime();
$string = $date->format(DATE_RFC2822);

3
आप DateTime का निरंतर उपयोग कर सकते हैं (जैसे DateTime :: ISO8601), यह कोड को पढ़ना आसान बनाता है।
आह-तुआन माई

2

सूची का उपयोग करके छोटा रास्ता। और आप वह कर सकते हैं जो आप प्रत्येक दिनांक घटक के साथ चाहते हैं।

list($day,$month,$year,$hour,$min,$sec) = explode("/",date('d/m/Y/h/i/s'));
echo $month.'/'.$day.'/'.$year.' '.$hour.':'.$min.':'.$sec;

2

मेरे लिए इसका काम किया

$start_time   = date_create_from_format('Y-m-d H:i:s', $start_time);
$current_date = new DateTime();
$diff         = $start_time->diff($current_date);
$aa           = (string)$diff->format('%R%a');
echo gettype($aa);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.