PHP में एक तारीख में तीन महीने जोड़ना


88

मेरे पास एक चर है $effectiveDateजिसमें दिनांक 2012-03-26 शामिल है ।

मैं इस तिथि में तीन महीने जोड़ने की कोशिश कर रहा हूं और इस पर असफल रहा हूं।

यहाँ मैं कोशिश की है:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));

तथा

$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");

मैं क्या गलत कर रहा हूं? न तो कोड का काम किया।


6
"काम नहीं किया" क्या मतलब है?
— जॉन

2
मुझे 1340649000उत्तर के रूप में मिल रहा है , जो सही प्रतीत होता है।
— डॉगबर्ट

क्या आप सुनिश्चित $effectiveDateहैं कि आप क्या सोचते हैं कि यह स्टोर है? यह मेरे लिए काम करता है ।
— जोश

मैं उम्मीद कर रहा हूं कि 2012-06-26 को 2012-03-26 में 3 महीने जोड़कर तारीख
— user979331

और date('Y-m-d', 1340661600)देता है 2012-06-26जो सही है।
— तचौपी

जवाबों:


192

इसे बदलें इससे आपको अपेक्षित प्रारूप मिलेगा:

$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));

महीनों के एक चर से कैसे निपटें? जैसे $ महीनों में महीनों की संख्या होती है? "+ '$months' months"काम नहीं करता है
— एचकेके

4
$offset = 5; echo date('Y-m-d', strtotime("+$offset months", strtotime('2000-01-01'))); डेमो
— सेस टिम्मरमैन

दिनांक () स्थानीयकरणों का उपयोग नहीं करते हैं। बेहतर है strftime ()।
— user706420

2
इस तरह से तारीखों के लिए अभ्यस्त काम: तारीख ('2018-01-31', स्ट्रेटोटाइम ('+ 3 महीने'))। यदि तारीख 31 में समाप्त होती है और अगले 3 महीने नहीं होती है, तो यह सही तारीख नहीं लौटेगी।
— डैन एच

3
अच्छा समाधान नहीं - सही मान नहीं लौटता - जैसा कि डैन एच ने उल्लेख किया है
— जोसेफ वैंकूरा

17

यह उत्तर इस प्रश्न के लिए ठीक नहीं है। लेकिन मैं इसे इस प्रश्न के बाद से जोड़ दूंगा कि तारीख से कटौती / अवधि कैसे जोड़नी है।

$date = new DateTime('now');
$date->modify('+3 month'); // or you can use '-90 day' for deduct
$date = $date->format('Y-m-d h:i:s');
echo $date;

5

मैं मानता हूँ "काम नहीं किया" से आपका मतलब है कि यह आपको स्वरूपित तिथि के बजाय टाइमस्टैम्प दे रहा है, क्योंकि आप इसे सही तरीके से कर रहे थे:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp
echo date('Y-m-d',$effectiveDate); // formatted version

3

Tchoupi के उत्तर को स्ट्रैडटाइम () के रूप में तर्क को संक्षिप्त करके एक क्रिया को कम क्रिया कहा जा सकता है:

$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months") );

(यह जादू के कार्यान्वयन के विवरण पर निर्भर करता है, लेकिन आप हमेशा उन पर एक नज़र रख सकते हैं यदि आप सही अविश्वास कर रहे हैं)।


2

आपको दिनांक को पठनीय मान में बदलने की आवश्यकता है। आप strftime () या दिनांक () का उपयोग कर सकते हैं।

इसे इस्तेमाल करे:

$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
$effectiveDate = strftime ( '%Y-%m-%d' , $effectiveDate );
echo $effectiveDate;

यह काम करना चाहिए। मुझे स्ट्रैप्टाइम का उपयोग करना बेहतर लगता है क्योंकि इसका उपयोग स्थानीयकरण के लिए किया जा सकता है जिसे आप इसे आज़माना चाहते हैं।


2

निम्नलिखित काम करना चाहिए, कृपया यह प्रयास करें:

$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d")));
echo $time = date("y/m/d", $effectiveDate);

1

काम करना चाहिए

$d = strtotime("+1 months",strtotime("2015-05-25"));
echo   date("Y-m-d",$d); // This will print **2015-06-25** 

1

Nth दिन, महीने और साल जोड़ें

$n = 2;
for ($i = 0; $i <= $n; $i++){
    $d = strtotime("$i days");
    $x = strtotime("$i month");
    $y = strtotime("$i year");
    echo "Dates : ".$dates = date('d M Y', "+$d days");
    echo "<br>";
    echo "Months : ".$months = date('M Y', "+$x months");
    echo '<br>';
    echo "Years : ".$years = date('Y', "+$y years");
    echo '<br>';
}

0

निम्नलिखित काम करना चाहिए, लेकिन आपको प्रारूप बदलने की आवश्यकता हो सकती है:

echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust)));
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.