Cách sử dụng hàm date_sub() trong PHP

Cach Su Dung Ham Date Sub Trong Php



Các date_sub() là một chức năng của Ngày giờ class, là một phần của phần mở rộng ngày và giờ của PHP. Nó được sử dụng để trừ một khoảng thời gian xác định từ một ngày nhất định. Nó có thể được sử dụng để tính một ngày trong tương lai bằng cách trừ đi một hoặc nhiều ngày, tháng hoặc năm kể từ ngày hiện tại. Các date_sub() chức năng trả về một cái mới Ngày giờ đối tượng đại diện cho ngày và thời gian sau khi tính toán đã được thực hiện.

Cú pháp cơ bản

Cú pháp sử dụng date_sub() chức năng được đưa ra dưới đây:

ngày_phụ ( Ngày giờ đối tượng $ , NgàyInterval $khoảng )

Đây, đối tượng $ Ngày giờ đối tượng bạn muốn trừ khoảng thời gian từ đó và $khoảng NgàyInterval đối tượng chỉ định khoảng mà bạn muốn trừ. Lưu ý rằng cả hai đối số đều được yêu cầu sử dụng date_sub() hoạt động chính xác.







Làm việc với DateInterval

Để sử dụng date_sub() chức năng, bạn cần tạo một NgàyInterval đối tượng chỉ định lượng thời gian bạn muốn trừ khỏi ngày giờ ban đầu của mình. NgàyInterval các đối tượng có thể được tạo bằng cách sử dụng NgàyInterval người xây dựng. Hàm tạo nhận tham số chuỗi chỉ định khoảng thời gian ở định dạng như P1D (một ngày), P1M (một tháng), P1Y (một năm) và P1DT1H (một ngày và một giờ).



ví dụ

// Trừ đi một ngày
$khoảng = mới NgàyInterval ( 'P1D' ) ; // Trừ đi một tháng
$khoảng = mới NgàyInterval ( 'P1M' ) ;

// Trừ đi một năm
$khoảng = mới NgàyInterval ( 'P1Y' ) ;

Cách sử dụng Hàm date_sub() trong PHP

Một khi bạn có một NgàyInterval đối tượng, bạn có thể kết hợp nó với một Ngày giờ object để tính ngày giờ mới. Đây là một ví dụ trừ đi một ngày kể từ ngày hiện tại:





$datetime = mới Ngày giờ ( ) ;

$khoảng = mới NgàyInterval ( 'P1D' ) ;

ngày_phụ ( $datetime , $khoảng ) ;

tiếng vang $datetime -> định dạng ( 'Y-m-d H:i:s' ) ;

?>

Như bạn có thể thấy, ngày giờ mới sớm hơn ngày hiện tại một ngày.





Cũng có thể trừ giờ, phút và giây từ một đối tượng DateTime bằng cách sử dụng date_sub() chức năng. Để trừ số giờ, bạn có thể chuyển khoảng thời gian ngày là PT1H, nghĩa là trừ đi một giờ. Ví dụ: hãy xem xét đoạn mã sau:





$datetime = mới Ngày giờ ( '2023-05-16 14:43:00' ) ;

ngày_phụ ( $datetime , mới NgàyInterval ( 'PT1H' ) ) ;

tiếng vang $datetime -> định dạng ( 'Y-m-d H:i:s' ) ;

?>

Điều này trừ đi một giờ từ đối tượng DateTime và cập nhật đối tượng với giá trị mới. Bạn có thể truy cập giá trị mới bằng cách sử dụng định dạng() chức năng của đối tượng DateTime.

Ví dụ 1: Trừ các khoảng khác nhau

Các date_sub() chức năng cho phép trừ các khoảng khác nhau, không chỉ ngày. Hãy xem xét một kịch bản trong đó chúng ta muốn trừ 2 giờ 30 phút cho một ngày và giờ nhất định.



$ngày = mới Ngày giờ ( '2023-11-02 10:32:45' ) ;

$khoảng = mới NgàyInterval ( 'PT1H15M' ) ;

ngày_phụ ( $ngày , $khoảng ) ;

tiếng vang $ngày -> định dạng ( 'Y-m-d H:i:s' ) ;

?>

Trong ví dụ này, chúng ta tạo một đối tượng DateTime biểu thị ngày và giờ “2023-11-02 10:32:45” . Chúng tôi cũng tạo ra một NgàyInterval đối tượng đại diện cho khoảng thời gian 1 giờ 15 phút sử dụng định dạng “PT1H15M”. Sau đó chúng tôi sử dụng date_sub() chức năng để trừ khoảng thời gian từ ngày và thời gian.

Ví dụ 2: Trừ nhiều khoảng

Bạn cũng có thể sử dụng date_sub() để trừ nhiều khoảng thời gian từ một đối tượng DateTime. Cú pháp rất đơn giản: chỉ cần tạo một đối tượng DateInterval mới cho mỗi khoảng thời gian bạn muốn trừ và chuyển tất cả chúng vào date_sub() hoạt động như một mảng.



khoảng $ = mảng (

mới NgàyInterval ( 'P1Y' ) ,

mới NgàyInterval ( 'P6M' ) ,

mới NgàyInterval ( 'P3D' )

) ;

$datetime = mới Ngày giờ ( ) ;

cho mỗi ( khoảng $ BẰNG $khoảng ) {

ngày_phụ ( $datetime , $khoảng ) ;

}

tiếng vang $datetime -> định dạng ( 'Y-m-d H:i:s' ) ;

?>

Trong ví dụ này, chúng tôi đã trừ đi một năm, sáu tháng và ba ngày kể từ ngày.

Ví dụ 3: date_sub() với Múi giờ

Một điều bạn cần lưu ý khi sử dụng date_sub() chức năng là nó có thể ảnh hưởng đến múi giờ của bạn Ngày giờ sự vật. Theo mặc định, Ngày giờ các đối tượng sử dụng múi giờ của máy chủ của bạn. Tuy nhiên, nếu bạn muốn làm việc với múi giờ khác, bạn có thể đặt múi giờ đó một cách rõ ràng bằng cách sử dụng setTimezone() phương pháp.



$datetime = mới Ngày giờ ( 'Hiện nay' , mới Ngày GiờZone ( 'Mỹ/New_York' ) ) ;

$khoảng = mới NgàyInterval ( 'P1D' ) ;

ngày_phụ ( $datetime , $khoảng ) ;

tiếng vang $datetime -> định dạng ( 'Y-m-d H:i:s' ) ;

?>

Trong ví dụ này, chúng tôi đặt múi giờ thành America/New_York và trừ một ngày khỏi ngày giờ.

Khi trừ các khoảng bằng cách sử dụng date_sub() chức năng, điều quan trọng cần lưu ý là ngày kết quả được điều chỉnh tự động nếu nó trở nên không hợp lệ.

Phần kết luận

Các date_sub() hàm trong PHP cung cấp một cách thuận tiện để trừ các khoảng thời gian khỏi các đối tượng DateTime. Bằng cách sử dụng chức năng này, các nhà phát triển có thể dễ dàng thực hiện các thao tác như trừ ngày, giờ, phút hoặc khoảng thời gian phức tạp từ một ngày và giờ nhất định. Các date_sub() cung cấp tính linh hoạt và độ chính xác trong việc xử lý các phép tính ngày, làm cho nó trở thành một công cụ có giá trị để làm việc với ngày và giờ trong các ứng dụng PHP.