DateInterval प्रारूप में 'P' क्या है?


82

DateTime के लिए php मैनुअल से उद्धृत निम्न उदाहरण पर विचार करें

<?php
  $date = new DateTime('2000-01-20');
  $date->sub(new DateInterval('P10D'));
  echo $date->format('Y-m-d') . "\n";
?>

'D' दिनों के लिए है, उस स्वरूपण में 'P' का क्या अर्थ है?

जवाबों:


122

से मैनुअल

अंतराल विनिर्देश।

प्रारूप पी के साथ शुरू होता है, "अवधि" के लिए। प्रत्येक अवधि की अवधि एक पूर्णांक मान द्वारा दर्शाई जाती है, उसके बाद एक अवधि का पदनाम होता है। यदि अवधि में समय तत्व शामिल हैं, तो विनिर्देश का वह भाग अक्षर T से पहले है।


24

'पी' का मतलब है पीरियड्स। यहां देखें http://php.net/manual/en/dateinterval.construct.php


10
वह पागल है, इसलिए कई उदाहरणों का उपयोग किया जाता है, Pलेकिन उस संदर्भ को इतना समझा जाता है। मैं यह अवधि का मतलब अनुमान लगाया और मैं खोज रहा था php.netकि शब्द के लिए, मैं स्पष्ट रूप से कभी नहीं निर्माता पेज को मिला .. लेकिन यह पर संदर्भित नहीं कर रहा है date_format, DateTime::diff, DateTime::format, DateInterval, और एक सामान्य के मेजबान Date/Timeकार्य करता है। मैं जानना चाहता था कि क्या इसके बारे में जानने के लिए कोई और उपसर्ग है और शापित हो सकता है अगर मुझे यह मिल जाए तो मैं स्टैक एक्सचेंज में आ सकता हूं
मदिवाड

9

मुझे लगता है कि इसका अधिक विवरण में उत्तर दिया जा सकता है। सबसे पहले, DateIntervalकंस्ट्रक्टर विधि एक पैरामीटर लेता है जिसका नाम $interval_specस्ट्रिंग है।

DateInterval::__construct ( string $interval_spec )

इस पैरामीटर में नीचे वर्णित विनिर्देश है:

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

कुछ पीरियड डिज़ाइनर हैं जिनका उपयोग तर्क में किया जाता है:

  • वाई के लिए वर्ष
  • महीने के लिए एम
  • डी के लिए दिन
  • सप्ताह के लिए डब्ल्यू । ये दिनों में परिवर्तित हो जाते हैं, इसलिए इसे D के साथ नहीं जोड़ा जा सकता है।
  • एच के लिए घंटे
  • मिनट के लिए एम
  • सेकंड के लिए एस

आइए पीरियड डिज़ाइनर्स का उपयोग करके कुछ उदाहरण देखें:

  • दो दिन पी 2 डी है।
  • दो सेकंड PT2S है।
  • छह साल और पांच मिनट P6YT5M है।

एक आदेश है जिसे डॉक्टर के बताए अनुसार बनाए रखने की आवश्यकता है:

इकाई प्रकारों को बाईं ओर सबसे बड़ी स्केल इकाई से दाईं ओर सबसे छोटी स्केल इकाई में दर्ज किया जाना चाहिए। इसलिए वर्षों से पहले, महीनों से पहले दिन, मिनटों से पहले दिन, आदि इस प्रकार एक वर्ष और चार दिन P1Y4D के रूप में दर्शाए जाने चाहिए, P4D1Y नहीं।

विनिर्देश को डेटाइम के रूप में भी दर्शाया जा सकता है

  • एक वर्ष, दो महीने, चार दिन P0001-02-04T00: 00: 00 होगा

लेकिन इस प्रारूप में दिए गए मान किसी निर्धारित अवधि के रोल-ओवर-पॉइंट (जैसे 25 घंटे अमान्य है) से अधिक नहीं हो सकते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.