कुछ स्थितियों में मैं अपने DATETIME स्वरूपित चर के मूल्य में 1 दिन जोड़ना चाहता हूं:
$start_date = date('Y-m-d H:i:s', strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}"));
इसे करने का बेहतरीन तरीका क्या है?
जवाबों:
यदि आप PHP में ऐसा करना चाहते हैं:
// replace time() with the time stamp you want to add one day to
$startDate = time();
date('Y-m-d H:i:s', strtotime('+1 day', $startDate));
यदि आप MySQL में तारीख जोड़ना चाहते हैं:
-- replace CURRENT_DATE with the date you want to add one day to
SELECT DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY);
time()
साथ बदल सकते हैं strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}")
।
इसके बाद ऐसा करने का एक तरीका है DateTime के साथ जो PHP 5.2 में पेश किया गया था। इसका उपयोग strtotime()
करने के विपरीत दिन की बचत समय और लीप वर्ष के लिए जिम्मेदार होगा।
$datetime = new DateTime('2013-01-29');
$datetime->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
// Available in PHP 5.3
$datetime = new DateTime('2013-01-29');
$datetime->add(new DateInterval('P1D'));
echo $datetime->format('Y-m-d H:i:s');
// Available in PHP 5.4
echo (new DateTime('2013-01-29'))->add(new DateInterval('P1D'))->format('Y-m-d H:i:s');
// Available in PHP 5.5
$start = new DateTimeImmutable('2013-01-29');
$datetime = $start->modify('+1 day');
echo $datetime->format('Y-m-d H:i:s');
+2 day
या +2 days
(स्पष्ट रूप +2 days
से अधिक शब्दार्थ सही है)
दिनांक समय निर्माता एक पैरामीटर लेता है string time
। $time
अलग-अलग चीजें हो सकती हैं, इसे डेटाइम प्रारूप का सम्मान करना होगा ।
उदाहरण के रूप में कुछ मान्य मूल्य हैं:
'now'
(डिफ़ॉल्ट मान)2017-10-19
2017-10-19 11:59:59
2017-10-19 +1day
तो, आपके मामले में आप निम्नलिखित का उपयोग कर सकते हैं।
$dt = new \DateTime('now +1 day'); //Tomorrow
$dt = new \DateTime('2016-01-01 +1 day'); //2016-01-02
strtotime
स्ट्रिंग को टाइम स्टैम्प में बदलने के लिए उपयोग करेंउदाहरण के लिए:
$time = strtotime($myInput);
$newTime = $time + 86400;
यदि यह केवल 1 दिन जोड़ रहा है, तो स्ट्रेटोटाइम का फिर से उपयोग करना संभवतः ओवरकिल है।
date()
स्थानीय समयक्षेत्र के साथ वापस परिवर्तित करना ध्यान में रखा जाता है जो दिन के उजाले की बचत का ध्यान रखेगा।
मेरा सुझाव है कि Zend_Date कक्षाओं का उपयोग Zend फ्रेमवर्क से शुरू करें । मुझे पता है, इसकी एक छोटी सी बात है, लेकिन मैं इस तरह से चाहूंगा :-)
$date = new Zend_Date();
$date->add('24:00:00', Zend_Date::TIMES);
print $date->get();
आप निम्नलिखित के रूप में उपयोग कर सकते हैं।
$start_date = date('Y-m-d H:i:s');
$end_date = date("Y-m-d 23:59:59", strtotime('+3 days', strtotime($start_date)));
आप दिनों को भी स्थिर और नीचे की तरह उपयोग कर सकते हैं।
if (!defined('ADD_DAYS')) define('ADD_DAYS','+3 days');
$end_date = date("Y-m-d 23:59:59", strtotime(ADD_DAYS, strtotime($start_date)));
दिन जोड़ने के लिए सर्वर अनुरोध समय का उपयोग करना। उम्मीद के मुताबिक काम करना।
25/08/19 => 27/09/19
$timestamp = $_SERVER['REQUEST_TIME'];
$dateNow = date('d/m/y', $timestamp);
$newDate = date('d/m/y', strtotime('+2 day', $timestamp));
किसी भी संख्या को जोड़ने के लिए यहां '+2 दिन' हैं।
Php date में दिनों को जोड़ने का एक अधिक संक्षिप्त और सहज तरीका है। मुझे गलत मत समझो, उन php अभिव्यक्तियाँ बहुत अच्छी हैं, लेकिन आपको हमेशा यह समझना होगा कि उनका इलाज कैसे किया जाए। मुझे उसके लिए स्वतः-पूर्ण सुविधा याद आती है।
यहां बताया गया है कि मैं उन मामलों को कैसे संभालता हूं:
(new Future(
new DateTimeFromISO8601String('2014-11-21T06:04:31.321987+00:00'),
new OneDay()
))
->value();
मेरे लिए, यह अधिक सहज और स्वत: पूर्ण करने का तरीका है। हर बार समाधान के लिए Google की आवश्यकता नहीं है।
एक अच्छा बोनस के रूप में, आपको परिणामी मूल्य को प्रारूपित करने के बारे में चिंता करने की ज़रूरत नहीं है, यह पहले से ही ISO8601 प्रारूप है।
यह मेरिंग्यू लाइब्रेरी है, यहां और भी उदाहरण हैं ।