PHP DateTime thêm ngày

Đây là một hướng dẫn ngắn về cách thêm ngày vào một ngày nhất định bằng PHP. Để làm điều này, chúng ta có thể sử dụng kết hợp ngày và strtotime hoặc chúng ta có thể sử dụng phương pháp OO và sử dụng lớp DateTime

Sử dụng lớp DateTime để thêm ngày vào một ngày

Hãy bắt đầu bằng cách xem xét một vài ví dụ sử dụng lớp DateTime

Thêm 30 ngày vào một ngày

Trong ví dụ sau, tôi sẽ thêm 30 ngày vào một ngày nhất định

//Using PHP's DateTime object to add 30 days
//to a given date.
$date = new DateTime('2019-06-10');

//Create a new DateInterval object using P30D.
$interval = new DateInterval('P30D');

//Add the DateInterval object to our DateTime object.
$date->add($interval);

//Print out the result.
echo $date->format("Y-m-d");

Trong đoạn mã trên

  1. Chúng tôi đã tạo một đối tượng DateTime mới và chuyển vào ngày mà chúng tôi muốn thêm ngày vào. Trong trường hợp này, tôi đã sử dụng ngày 10 tháng 6 năm 2019. tôi. e. Chúng tôi muốn thêm 30 ngày vào ngày 10 tháng 6 năm 2019
  2. Sau đó, chúng tôi đã tạo một đối tượng DateInterval và đặt tham số $interval_spec trong hàm tạo thành P30D. P30D là viết tắt của “khoảng thời gian 30 ngày. ”
  3. Sau đó, chúng tôi đã thêm DateInterval này vào đối tượng DateTime của mình bằng cách sử dụng chức năng thêm
  4. Cuối cùng, chúng tôi đã in ra kết quả bằng DateTime. chức năng định dạng

Thêm 7 ngày vào một ngày bằng DateTime

Đoạn mã PHP ở trên có thể dễ dàng sửa đổi để thêm 7 ngày thay vì 30. Điều duy nhất cần thay đổi là dòng mà chúng tôi đã khởi tạo lớp DateInterval

//DateInterval object using 7 days / P7D.
$interval = new DateInterval('P7D');

Thêm ngày vào ngày hôm nay

Nếu bạn muốn thêm ngày vào ngày hôm nay, thì bạn chỉ cần bỏ qua tham số trong hàm tạo

//Create a DateTime object w/ no constructor.
$date = new DateTime();

Đối tượng DateTime ở trên sẽ mặc định là dấu thời gian hiện tại

Các ví dụ về DateInterval khác

Dưới đây là một vài thông số khoảng thời gian khác có thể được sử dụng với lớp DateInterval

  • P1Y. Thêm thời hạn một năm
  • P5D. Thêm khoảng thời gian 5 ngày
  • P1D. Thêm khoảng thời gian 1 ngày
  • P6M. Thêm thời hạn 6 tháng
  • P4W. Thêm khoảng thời gian 4 tuần

Kể từ phiên bản PHP 7. 1, bạn thậm chí có thể thêm micro giây vào dấu thời gian

Sử dụng ngày và strtotime

Nếu bạn cảm thấy thoải mái hơn khi sử dụng các hàm ngày và strtotime, thì bạn có thể sử dụng ví dụ sau

//Using PHP's date and strtotime functions to get
//the date 30 days from now.
$thirtyDays = date("Y-m-d", strtotime("+30 days"));

//Print out the result.
echo $thirtyDays;

Trong đoạn mã trên, chúng tôi đã thêm 30 ngày vào ngày hiện tại

Tuy nhiên, nếu bạn muốn thêm ngày vào một ngày nhất định, thì bạn sẽ cần sửa đổi cách tiếp cận của mình một chút

//Adding +30 days to a given date.
$date = '2019-06-10';
$thirtyDaysUnix = strtotime('+30 days', strtotime($date));
echo date("d M Y", $thirtyDaysUnix);

Như bạn có thể thấy, hàm strtotime thực sự khá hữu ích theo nghĩa là bạn gần như có thể viết chính xác những gì bạn muốn bằng tiếng Anh đơn giản vào tham số đầu tiên. Ví dụ: bạn cũng có thể yêu cầu thêm một tháng

❮ Tham chiếu ngày/giờ PHP

Thí dụ

Thêm 40 ngày vào ngày 15 tháng 3 năm 2013

$date=date_create("15-03-2013");
date_add($date,date_interval_create_from_date_string("40 ngày"));
echo date_format($date,"Y-m-d");
?>

Tự mình thử »


Định nghĩa và cách sử dụng

Hàm date_add() thêm một số ngày, tháng, năm, giờ, phút và giây vào một ngày


cú pháp

date_add(đối tượng, khoảng thời gian)

Giá trị tham số

Tham sốMô tảđối tượngBắt buộc. Chỉ định một đối tượng DateTime được trả về bởi date_create()intervalRequired. Chỉ định một đối tượng DateInterval

chi tiết kỹ thuật

Giá trị trả về. Trả về một đối tượng DateTime khi thành công. FALSE trên failPhiên bản PHP. 5. 3+
❮ Tham chiếu ngày/giờ PHP

Thao tác chuỗi date trong PHP có thể thực hiện bằng nhiều cách, có thể cộng trừ giờ, tháng, năm, v.v. PHP cung cấp các chức năng khác nhau như DateTime, date_add và sự kết hợp của strtotime()

echo $fomattedDate; //output: 2020-02-28
0

Sử dụng phiên bản PHP 5. 3 trở lên, đối tượng DateTime và phương thức của nó là

echo $fomattedDate; //output: 2020-02-28
2 cũng có thể là một giải pháp. DateTime hỗ trợ nhiều định dạng ngày hơn
echo $fomattedDate; //output: 2020-02-28
4 và date. Sử dụng một đối tượng cũng dễ dàng hơn các chức năng tùy ý. Ví dụ: khi so sánh hai ngày, nó trực tiếp trong DateTime, nhưng trong
echo $fomattedDate; //output: 2020-02-28
4, việc chuyển đổi ngày đầu tiên thành dấu thời gian là cần thiết

Thí dụ

add(new DateInterval('P1D')); // P1D means a period of 1 day
$fomattedDate = $date->format('Y-m-d');
?>

Đoạn mã sau sẽ in đầu ra

echo $fomattedDate; //output: 2020-02-28

Phần khó của việc sử dụng

echo $fomattedDate; //output: 2020-02-28
8 là đối tượng
echo $fomattedDate; //output: 2020-02-28
9. Điều này chấp nhận một đặc tả khoảng thời gian hợp lệ. Định dạng phù hợp bắt đầu bằng chữ cái

0 có nghĩa là

1, theo sau là một giá trị số nguyên, sau đó là

2 cho ngày. Nếu thời lượng là thời gian, phần cuối cùng cần phải là

3

Sự kết hợp của strtotime() và echo $fomattedDate; //output: 2020-02-28 0 để thêm ngày vào ngày trong PHP

strtotime() là một hàm PHP được sử dụng để chuyển đổi mô tả ngày tháng bằng văn bản tiếng Anh sang dấu thời gian UNIX. Hàm

echo $fomattedDate; //output: 2020-02-28
4 sẽ chấp nhận một giá trị chuỗi đại diện cho ngày-thời gian

Thí dụ


Đoạn mã sau sẽ xuất ra

echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29

Ví dụ trên sẽ chấp nhận một chuỗi ngày có định dạng phù hợp và trả về ngày mới bằng cách sử dụng

echo $fomattedDate; //output: 2020-02-28
4 và

9. Hàm
echo $fomattedDate; //output: 2020-02-28
0 có định dạng phù hợp

Ghi chú. Để tránh tối nghĩa, nên sử dụng định dạng

echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29
1

Cách tiếp cận này là cách dễ nhất trong số những cách khác để thêm ngày, tháng, năm, giờ, phút và giây

Thí dụ

$oldDate = date_create("2020-02-27"); 
date_add($oldDate, date_interval_create_from_date_string("1 day"));

trong ứng dụng

echo date_format($date,"Y-m-d"); //output: 2020-02-28

Ví dụ trên cũng thêm ngày vào chuỗi ngày,

echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29
2 tạo đối tượng DateTime.
echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29
3 thiết lập một
echo $fomattedDate; //output: 2020-02-28
9 từ các phần của chuỗi. Sau đó, cuối cùng,
echo $date1; //output: 2020-02-28
echo $date2; //output: 2020-02-29
5 tăng giá trị ngày