তারিখ বিয়োগ 1 বছর?


91

আমি এই বিন্যাসে একটি তারিখ পেয়েছি:

2009-01-01

আমি একই তারিখটি কিন্তু 1 বছর আগে কীভাবে ফেরত দেব?


4
"" এক বছর "আর্ট লিপ বছরগুলি দ্বারা আপনি কী বোঝাতে চেয়েছেন সে সম্পর্কে শব্দার্থবিরোধী ইস্যুতে ঝুঁকবেন না। ২০০৮-০২-২৮ থেকে ৩5৫ দিন বিয়োগ করা আপনাকে 2007-02-28 দেবে, যখন ২০০-2-০২-২৯ থেকে ৩5৫ দিন বিয়োগ করলে আপনাকে 2007-03-31 দেবে।
হোস্টাইলফোর্ক জানায় যে এসই

আমি অনুমান করি যে এটি "এক বছর বিয়োগ" মানে কী তার উপর অনেক বেশি নির্ভর করে। আপনার অর্থ একই মাস এবং দিন হতে পারে তবে এক বছর আগে বা মাস এবং দিন বাদ দিয়ে ৩৫৫ দিন বিয়োগ করার পরে শত্রুতা নির্দেশ করে।
ডি.শ্যাবলি

উত্তর:


132

আপনি ব্যবহার করতে পারেন strtotime:

$date = strtotime('2010-01-01 -1 year');

strtotimeফাংশন একটি UNIX টাইমস্ট্যাম্প ফেরৎ, একটি বিন্যস্ত স্ট্রিং আপনি ব্যবহার করতে পারেন পেতে date:

echo date('Y-m-d', $date); // echoes '2009-01-01'


52

ডেটটাইম অবজেক্ট ব্যবহার করা হচ্ছে ...

$time = new DateTime('2099-01-01');
$newtime = $time->modify('-1 year')->format('Y-m-d');

বা আজকের জন্য এখন ব্যবহার

$time = new DateTime('now');
$newtime = $time->modify('-1 year')->format('Y-m-d');

32

একটি সহজ উপায় যা আমি ব্যবহার করেছি এবং ভালভাবে কাজ করেছি

date('Y-m-d', strtotime('-1 year'));

এটি নিখুঁতভাবে কাজ করেছে .. আশা করি এটি অন্য কাউকেও সহায়তা করবে .. :)


9
// set your date here
$mydate = "2009-01-01";

/* strtotime accepts two parameters.
The first parameter tells what it should compute.
The second parameter defines what source date it should use. */
$lastyear = strtotime("-1 year", strtotime($mydate));

// format and display the computed date
echo date("Y-m-d", $lastyear);

6

আমার ওয়েবসাইটে লোক নিবন্ধকরণের বয়স 18 বছর কিনা তা পরীক্ষা করতে আমি কেবল নিম্নলিখিতটি ব্যবহার করেছি:

$legalAge = date('Y-m-d', strtotime('-18 year'));

পরে, কেবল দুটি তারিখের তুলনা করুন।

আশা করি এটি কাউকে সাহায্য করতে পারে।


3

যদিও এই প্রশ্নের প্রতিক্রিয়াতে অনেক গ্রহণযোগ্য উত্তর রয়েছে তবে আমি অবজেক্টটি subব্যবহার করে পদ্ধতির কোনও উদাহরণ দেখতে পাচ্ছি না \Datetime: https://www.php.net/manual/en/datetime.sub.php

সুতরাং, রেফারেন্সের জন্য, আপনি \DateIntervalকোনও \Datetimeঅবজেক্টটি সংশোধন করতে একটি ব্যবহার করতে পারেন :

$date = new \DateTime('2009-01-01');
$date->sub(new \DateInterval('P1Y'));

echo $date->format('Y-m-d');

যা ফেরত:

2008-01-01

সম্পর্কিত আরও তথ্যের \DateIntervalজন্য ডকুমেন্টেশন দেখুন: https://www.php.net/manual/en/class.dateinterval.php


-3

আপনি 1 বা কোনও তারিখ থেকে যে কোনও বছর বিয়োগ করতে নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন।

 function yearstodate($years) {

        $now = date("Y-m-d");
        $now = explode('-', $now);
        $year = $now[0];
        $month   = $now[1];
        $day  = $now[2];
        $converted_year = $year - $years;
        echo $now = $converted_year."-".$month."-".$day;

    }

$number_to_subtract = "1";
echo yearstodate($number_to_subtract);

এবং উপরের উদাহরণগুলি দেখে আপনি নিম্নলিখিতগুলিও ব্যবহার করতে পারেন

$user_age_min = "-"."1";
echo date('Y-m-d', strtotime($user_age_min.'year'));
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.