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.