Hướng dẫn php date time add 1 year - php ngày giờ thêm 1 năm

Định dạng đã mặc định ("Y-M-D H: I: S"). Bạn không cần sử dụng createdFromFormat, trừ khi bạn xử lý dữ liệu từ bên thứ 3. Đề xuất của tôi cho mã sẽ như thế này("Y-m-d H:i:s"). You don't need to use CreateFromFormat, unless you are handle data from 3rd party. My suggestion for the code would be like this

$originaldate = '2019-01-10 17:52:17';
$converted = new DateTime( $originaldate ); //prefer like this
//DateTime::createFromFormat("Y-m-d H:i:s", $originaldate); //after browsing this is recomended

$date6Month = new DateTime( $originaldate );
$date1Year = new DateTime( $originaldate );
$dateBack = new DateTime( $originaldate );
//$date6Month = $date1Year = $dateBack= $converted;
//prefer to use different variable for every date. Not copy

echo "ori:".$converted ->format('Y-m-d H:i:s') . "\n"; 
//ori:2019-01-10 17:52:17

##6 month later
$date6Month ->add(new DateInterval('P6M'));
echo "6 month:".$date6Month ->format('Y-m-d H:i:s') . "\n";
//6 month:2019-07-10 17:52:17

##1 year later
$date1Year ->add(new DateInterval('P1Y'));
echo "1 year:".$date1Year ->format('Y-m-d H:i:s') . "\n";
//1 year:2020-01-10 17:52:17
//1 year:2020-07-10 17:52:17 (wrong if using copy main parameter)

$date1Year ->add(  DateInterval::createFromDateString('1 Years') );
echo "1 year (later):".$date1Year ->format('Y-m-d H:i:s') . "\n";
//1 year (later):2021-01-10 17:52:17
//1 year (later):2021-07-10 17:52:17 (wrong if using copy main parameter)

Bạn có thể sử dụng DateInterVal :: createdFromDatestring cho mã có thể đọc được hơn là sử dụng định dạng. Đề xuất của tôi là tách biến không sao chép khỏi nguồn gốc.

Định dạng bạn có thể sử dụng trên DateInterval

Bắt đầu "P" khi chứa ngày, tháng và năm

Định dạngThông tinThí dụ
YNăm1 năm
MTháng3M
DNgày5d

Ví dụ: P1Y3M5DP1Y3M5D

Luôn bắt đầu "P" trước "T" nếu không chứa ngày, tháng và năm (PT1H). Nếu không bắt đầu nó với "T"

Định dạngThông tinThí dụ
YNăm1 năm
MTháng3M
DNgày5d
Ví dụ: P1Y3M5DLuôn bắt đầu "P" trước "T" nếu không chứa ngày, tháng và năm (PT1H). Nếu không bắt đầu nó với "T"H

GIỜPT1H3M5S

1h

PHÚT

date_default_timezone_set('America/Phoenix'); 
//is important to add when your time are detail
$date = new DateTime('2000-01-01');
$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
echo $date->format('Y-m-d H:i:s') . "\n";
//2007-06-05 04:03:02

$originaldate = 2019-01-10 17:52:17
$dateBack = $dateBack2 = new DateTime( $originaldate );
//if you want to substract the value you can use this
$dateBack ->sub(new DateInterval('P1Y2M3DT1H4M1S'));
echo $dateBack ->format('Y-m-d H:i:s') . "\n";
//output: 2019-05-07 16:48:16

$dateBack2=$converted;
$formatDay='P1Y3M6D'; //only year, month and day 
$formatTime='T1H3M6S'; //only hour, minutes and seconds
$dateBack2 ->sub(new DateInterval( $formatDay.$formatTime ));
echo $dateBack ->format('Y-m-d H:i:s') . "\n";
//2018-02-01 15:45:10

S

Giây

  • 5s
  • F
  • Microsecond (PHP7+)
  • 5f

Thay đổi ngôn ngữ:

Gửi báo cáo yêu cầu kéo một lỗi

date_add

(Php 5> = 5.3.0, Php 7, Php 8)

DateTime :: Thêm - DATE_ADD - Sửa đổi một đối tượng DateTime, với số lượng thêm ngày, tháng, năm, giờ, phút và giây -- date_add Modifies a DateTime object, with added amount of days, months, years, hours, minutes and seconds

Sự mô tả

Phong cách hướng đối tượng

PublicDateTime :: Thêm (DateInterVal $interval): DateTime DateTime::add(DateInterval $interval): DateTime

Phong cách thủ tục

date_add (DateTime $object, DateInterval $interval): DateTime(DateTime $object, DateInterval $interval): DateTime

Thêm đối tượng DateInterVal được chỉ định vào đối tượng DateTime được chỉ định.DateInterval object to the specified DateTime object.

Giống như datetimeimmutable :: add () nhưng hoạt động với DateTime.DateTimeImmutable::add() but works with DateTime.

Phiên bản thủ tục lấy đối tượng DateTime làm đối số đầu tiên của nó.DateTime object as its first argument.

Thông số

object

Chỉ kiểu thủ tục: một đối tượng DateTime được trả về bởi date_create (). Hàm sửa đổi đối tượng này.DateTime object returned by date_create(). The function modifies this object.

interval

Một đối tượng DateIntervalDateInterval object

Trả về giá trị

Trả về đối tượng DateTime sửa đổi cho chuỗi phương thức.DateTime object for method chaining.

Xem thêm

  • Datetimeimmutable :: add () - Trả về một đối tượng mới, với số lượng ngày, tháng, năm, giờ, phút và giây

+ Thêm một ghi chú

Người dùng đóng góp ghi chú

Không có người dùng đóng góp ghi chú cho trang này.

Làm thế nào để có được năm ngày trong PHP?

Nếu bạn không muốn sử dụng lớp DateTime thì bạn chỉ cần sử dụng hàm ngày () của PHP để có được năm kể từ ngày.use the PHP's date() function to get the year from date.

Làm thế nào tôi có thể so sánh hai ngày trong điều kiện trong PHP?

So sánh hai ngày trong PHP rất đơn giản khi cả hai ngày ở cùng định dạng nhưng vấn đề phát sinh khi cả hai ngày ở một định dạng khác nhau.Phương pháp 1: Nếu các ngày đã cho ở cùng định dạng thì sử dụng toán tử so sánh đơn giản để so sánh các ngày.echo "$ date1 lớn hơn $ ngày2";?>use a simple comparison operator to compare the dates. echo "$date1 is older than $date2" ; ?>