পিএইচপি-তে একটি তারিখে তিন মাস যোগ করা হচ্ছে


90

আমার কাছে একটি পরিবর্তনশীল রয়েছে যা 2012-03-26$effectiveDate তারিখটি ধারণ করে ।

আমি এই তারিখে তিন মাস যোগ করার চেষ্টা করছি এবং এটিতে ব্যর্থ হয়েছি।

এখানে আমি চেষ্টা করেছি:

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

এবং

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

আমি কি ভুল করছি? কোডের কোনও অংশই কাজ করেনি।


6
"কাজ হয়নি" এর অর্থ কী?
জন

4
আমি 1340649000উত্তর হিসাবে পেয়ে যাচ্ছি , যা সঠিক বলে মনে হচ্ছে।
ডগবার্ট

আপনি $effectiveDateকি ভাবেন যে এটি কী সঞ্চয় করে? এটা আমার জন্য কাজ করে
জোশ

আমি সেই তারিখটি 2012-06-26-এ 3 মাস যোগ করে 2012-03-26
ইউজার 979331

এবং যা সঠিক তা date('Y-m-d', 1340661600)দেয় 2012-06-26
টচৌপি

উত্তর:


193

এটিতে এটি পরিবর্তন করুন আপনাকে প্রত্যাশিত বিন্যাসটি দেবে:

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

কিভাবে মাসের একটি পরিবর্তনশীল সঙ্গে ডিল করতে হবে? যেমন $ মাসের মধ্যে মাসের সংখ্যা থাকে? "+ '$months' months"কাজ করে না
HKK

4
$offset = 5; echo date('Y-m-d', strtotime("+$offset months", strtotime('2000-01-01'))); ডেমো
সিস টিমারম্যান

তারিখ () স্থানীয়করণ ব্যবহার করবেন না। স্ট্রফটাইম () ভাল।
ব্যবহারকারী 706420

4
এটি এর মতো তারিখগুলির জন্য কাজ করবে না: তারিখ ('2018-01-31', স্ট্রোটোটাইম ('+ 3 মাস'))। তারিখটি যদি 31 এ শেষ হয় এবং পরের 3 মাস না হয়, তবে এটি সঠিক তারিখটি ফিরিয়ে দেবে না।
ড্যান এইচ

4
ভাল সমাধান নয় - সঠিক মানগুলি ফিরিয়ে দেয় না - যেমন ড্যান এইচ উল্লেখ করেছেন
জোসেফ ভ্যাঙ্কুরা

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

আপনার তারিখটি পাঠযোগ্য মানে রূপান্তর করা দরকার। আপনি স্ট্রাইফটাইম () বা তারিখ () ব্যবহার করতে পারেন।

এটা চেষ্টা কর:

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

এই কাজ করা উচিত. আমি স্ট্রফটাইম আরও ভাল ব্যবহার করতে চাই কারণ এটি স্থানীয়করণের জন্য ব্যবহার করা যেতে পারে আপনি এটি চেষ্টা করতে চাইতে পারেন।


3

ত্রচোটির উত্তরটি স্ট্রোটোটাইম () এর জন্য যুক্তিটি উপস্থাপন করে নিম্নরূপ ব্যবহার করা যেতে পারে:

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

(এটি যাদু বাস্তবায়নের বিশদগুলির উপর নির্ভর করে, তবে আপনি যদি সত্যই অবিশ্বস্ত হন তবে আপনি সর্বদা সেগুলি দেখতে পারেন))


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

নবম দিন, মাস এবং বছর যোগ করুন

$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)));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.