ฉันมีวันที่ในรูปแบบนี้:
2009-01-01
ฉันจะกลับวันเดียวกัน แต่ 1 ปีก่อนหน้านี้ได้อย่างไร
ฉันมีวันที่ในรูปแบบนี้:
2009-01-01
ฉันจะกลับวันเดียวกัน แต่ 1 ปีก่อนหน้านี้ได้อย่างไร
คำตอบ:
ใช้ฟังก์ชัน strtotime ():
$time = strtotime("-1 year", time());
$date = date("Y-m-d", $time);
การใช้วัตถุ DateTime ...
$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');
วิธีที่ง่ายที่สุดที่ฉันใช้และได้ผลดี
date('Y-m-d', strtotime('-1 year'));
ทำงานได้สมบูรณ์แบบ .. หวังว่านี่จะช่วยคนอื่นได้เช่นกัน .. :)
// 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);
ในเว็บไซต์ของฉันเพื่อตรวจสอบว่าการลงทะเบียนบุคคลที่มีอายุ 18 ปีฉันเพียงแค่ใช้สิ่งต่อไปนี้:
$legalAge = date('Y-m-d', strtotime('-18 year'));
หลังจากนั้นให้เปรียบเทียบเฉพาะวันที่ทั้งสอง
หวังว่ามันจะช่วยใครสักคนได้
แม้ว่าจะมีคำตอบที่ยอมรับได้มากมายสำหรับคำถามนี้ แต่ฉันไม่เห็นตัวอย่างของsub
วิธีการที่ใช้\Datetime
วัตถุ: https://www.php.net/manual/en/datetime.sub.php
ดังนั้นสำหรับการอ้างอิงคุณยังสามารถใช้ a \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
คุณสามารถใช้ฟังก์ชันต่อไปนี้เพื่อลบ 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'));