নির্দিষ্ট পরিস্থিতিতে আমি আমার DATETIME ফর্ম্যাট ভেরিয়েবলের মানতে 1 দিন যুক্ত করতে চাই:
$start_date = date('Y-m-d H:i:s', strtotime("{$_GET['start_hours']}:{$_GET['start_minutes']} {$_GET['start_ampm']}"));
এই কাজ করতে সবচেয়ে ভালো উপায় কি?
উত্তর:
আপনি যদি পিএইচপিতে এটি করতে চান:
// 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));
আপনি যদি মাইএসকিউএলে তারিখটি যুক্ত করতে চান:
-- 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']}")।
ডেটটাইম সহ এটি করার আরও একটি উপায় আছে যা পিএইচপি 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-192017-10-19 11:59:592017-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 ক্লাসগুলি জেন্ড ফ্রেমওয়ার্ক থেকে শুরু করার পরামর্শ দিচ্ছি । আমি জানি, এটি কিছুটা অফটোপিক, তবে আমি এইভাবে পছন্দ করব :-)
$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)));
পিএইচপি তারিখে দিন যুক্ত করার জন্য আরও সংক্ষিপ্ত এবং স্বজ্ঞাত উপায় রয়েছে। আমাকে ভুল করবেন না, এই পিএইচপি এক্সপ্রেশনগুলি দুর্দান্ত, তবে কীভাবে তাদের আচরণ করা যায় তা আপনাকে সর্বদা গুগল করতে হবে। আমি তার জন্য অটো-সমাপ্তির সুবিধা মিস করছি।
আমি এখানে এই মামলাগুলি পরিচালনা করতে পছন্দ করি:
(new Future(
new DateTimeFromISO8601String('2014-11-21T06:04:31.321987+00:00'),
new OneDay()
))
->value();
আমার জন্য, এটি বাক্স থেকে আরও স্বজ্ঞাত এবং স্বতঃপূরণ কাজ করে। প্রতিবার সমাধানের জন্য গুগল লাগবে না।
একটি দুর্দান্ত বোনাস হিসাবে, আপনাকে ফলস্বরূপ মানটি ফর্ম্যাট করার বিষয়ে চিন্তা করতে হবে না, এটি ইতিমধ্যে আইএসও 8601 ফর্ম্যাট।