Hướng dẫn how can i compare current date and time in php? - làm thế nào tôi có thể so sánh ngày và giờ hiện tại trong php?

Một cảnh báo dựa trên kinh nghiệm của tôi, nếu mục đích của bạn chỉ liên quan đến ngày thì hãy cẩn thận bao gồm dấu thời gian. Ví dụ, giả sử hôm nay là "2016-11-09". So sánh liên quan đến dấu thời gian sẽ vô hiệu hóa logic ở đây. Thí dụ,if your purpose only involves date then be careful to include the timestamp. For example, say today is "2016-11-09". Comparison involving timestamp will nullify the logic here. Example,

//  input
$var = "2016-11-09 00:00:00.0";

//  check if date is today or in the future
if ( time() <= strtotime($var) ) 
{
    //  This seems right, but if it's ONLY date you are after
    //  then the code might treat $var as past depending on
    //  the time.
}

Mã ở trên có vẻ đúng, nhưng nếu đó chỉ là ngày bạn muốn so sánh, thì, mã trên không phải là logic phù hợp. Tại sao? Bởi vì, thời gian () và strtotime () sẽ cung cấp bao gồm dấu thời gian. Đó là, mặc dù cả hai ngày rơi vào cùng một ngày, nhưng sự khác biệt về thời gian sẽ quan trọng. Xem xét ví dụ dưới đây: Why? Because, time() and strtotime() will provide include timestamp. That is, even though both dates fall on the same day, but difference in time will matter. Consider the example below:

//  plain date string
$input = "2016-11-09";

Bởi vì đầu vào là chuỗi ngày đơn giản, sử dụng strtotime() trên

//  plain date string
$input = "2016-11-09";
0 sẽ cho rằng đó là nửa đêm 2016-11-09. Vì vậy, chạy
//  plain date string
$input = "2016-11-09";
1 bất cứ lúc nào sau nửa đêm sẽ luôn đối xử với
//  plain date string
$input = "2016-11-09";
0 như quá khứ, mặc dù chúng cùng ngày.

Để khắc phục điều này, bạn có thể chỉ cần viết mã, như thế này:

if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}

So sánh ngày trở nên cần thiết khi bạn đang tạo các plugin hoặc lịch trình sự kiện trong PHP. Nó cũng có nhiều cách sử dụng khác, tùy thuộc vào cách bạn thực hiện mọi thứ. Ví dụ: chúng tôi có thể sử dụng nó để tạo các sự kiện quảng cáo nhạy cảm với thời gian trong các tập lệnh PHP của chúng tôi.

PHP đi kèm với các chức năng và phương pháp chuyên dụng mà bạn có thể sử dụng để so sánh ngày khi viết mã kiểu theo thủ tục hoặc hướng đối tượng. Trong hướng dẫn này, chúng tôi sẽ thảo luận về cả hai.

So sánh ngày trong PHP (kiểu hướng đối tượng)

Có một lớp

//  plain date string
$input = "2016-11-09";
3 trong PHP mà bạn có thể sử dụng để tạo các đối tượng
//  plain date string
$input = "2016-11-09";
3. Bạn có thể chuyển nó một chuỗi ngày/thời gian hợp lệ cùng với đối số thời gian tùy chọn để tạo đối tượng
//  plain date string
$input = "2016-11-09";
3. Đây là vài ví dụ:

Bạn có thể sử dụng các toán tử so sánh đơn giản trên các đối tượng

//  plain date string
$input = "2016-11-09";
3 này để so sánh các ngày ngay bây giờ và kiểm tra xem giá trị trả về là
//  plain date string
$input = "2016-11-09";
7 hay
//  plain date string
$input = "2016-11-09";
8.

 $dist_past) {
    echo 'The third date is in the distant past.';
}
// Output: The third date is in the distant past.


if($dist_future > $now) {
    echo 'The fourth date is in the future.';
}
// Output: The fourth date is in the future.

?>

Sự khác biệt của ngày trong PHP (kiểu hướng đối tượng)

Đôi khi, bạn có thể muốn có thêm một số thông tin khi so sánh ngày. Có các phương pháp và chức năng chuyên dụng trong PHP để tính toán sự khác biệt giữa ngày.

Khi bạn đã tạo các đối tượng

//  plain date string
$input = "2016-11-09";
3 của mình, bạn cũng có thể gọi phương thức
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
0 trên một đối tượng và chuyển nó vào ngày khác để tính toán sự khác biệt giữa các ngày. Điều này sẽ cung cấp cho bạn một đối tượng
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
1.

Hãy nhớ rằng ngày mà bạn gọi là

if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
0 sẽ bị trừ từ ngày được chuyển sang phương pháp này. Bạn có thể định dạng sự khác biệt theo bất kỳ cách nào bạn muốn sau đó bằng cách sử dụng phương thức
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
3. Dưới đây là một số ví dụ:

diff($now);

$days_next = $now->diff($next);

echo $days_last->format('%a days').' since last Christmas.';
// Output: 170 days since last Christmas.

echo $days_next->format('%a days').' to next Christmas.';
// Output: 194 days to next Christmas.

?>

Bạn có thể chuyển nhiều tham số cho phương thức

if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
3 để kiểm soát cách đầu ra PHP. Trong ví dụ của chúng tôi, chúng tôi đã sử dụng
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
5 để xác định độ tương đối của sự khác biệt. Một giá trị tích cực có nghĩa là ngày được truyền đến
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
0 trong tương lai so với ngày gọi nó. Một giá trị âm có nghĩa là ngày được truyền đến
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
0 trong quá khứ so với ngày gọi nó. Chuỗi
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
8 được sử dụng để hiển thị số ngày và giờ. Bạn cũng có thể sử dụng các chuỗi khác như
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
9,
0 và 
1 để hiển thị giờ, phút và giây tương ứng. Tất cả các ký tự định dạng này có thể được tìm thấy trong tài liệu cho phương thức 
if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
3.

So sánh ngày trong PHP (phong cách thủ tục)

Bạn có thể sử dụng một bộ chức năng khác nếu bạn thích viết mã kiểu thủ tục. Trong trường hợp này, chúng ta có thể sử dụng hàm

3 để tạo các đối tượng 
//  plain date string
$input = "2016-11-09";
3 của chúng ta từ chuỗi được truyền. Các biến bạn xác định vẫn sẽ lưu trữ các đối tượng
//  plain date string
$input = "2016-11-09";
3, nhưng chúng sẽ không được bạn khởi tạo rõ ràng.

Vì chúng tôi vẫn đang xử lý các đối tượng

//  plain date string
$input = "2016-11-09";
3, các nhà khai thác so sánh thường xuyên vẫn sẽ cho phép chúng tôi so sánh các ngày này.

 $dist_past) {
    echo 'The third date is in the distant past.';
}
// Output: The third date is in the distant past.


if($dist_future > $now) {
    echo 'The fourth date is in the future.';
}
// Output: The fourth date is in the future.

?>

Sự khác biệt của ngày trong PHP (phong cách thủ tục)

Giống như phương pháp

if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
0 của lớp
//  plain date string
$input = "2016-11-09";
3, có một hàm
3 tương ứng mà bạn có thể sử dụng để tính toán chênh lệch giữa hai ngày. Nó chấp nhận hai tham số và ngày được cung cấp trong tham số đầu tiên được trừ từ ngày trong tham số thứ hai.

Đây là một ví dụ để tính số ngày kể từ Giáng sinh vừa qua và số ngày đến Giáng sinh tới.

Chúng tôi muốn giữ số ngày được trả lại dương trong cả hai trường hợp, vì vậy thời gian đến sau được thông qua dưới dạng tham số thứ hai.

Suy nghĩ cuối cùng

PHP đi kèm với các phương pháp và chức năng tiện dụng để so sánh hai ngày, tùy thuộc vào phong cách mã hóa của bạn. Bạn có thể nhận thêm thông tin như chênh lệch thời gian chính xác giữa hai ngày sử dụng phương thức

if (date("Y-m-d") <= $input)
{
    echo "Input date is equal to or greater than today.";
}
0 và hàm
 $dist_past) {
    echo 'The third date is in the distant past.';
}
// Output: The third date is in the distant past.


if($dist_future > $now) {
    echo 'The fourth date is in the future.';
}
// Output: The fourth date is in the future.

?>
1 trong PHP. Tôi đã cố gắng bao gồm những điều cơ bản của việc so sánh ngày trong PHP trong hướng dẫn này. Bạn nên xem xét đọc tài liệu để tìm hiểu cách định dạng sự khác biệt về ngày theo những cách nâng cao hơn.

Bạn có thấy bài đăng này hữu ích?

Hướng dẫn how can i compare current date and time in php? - làm thế nào tôi có thể so sánh ngày và giờ hiện tại trong php?

Freelancer, người hướng dẫn

Tôi là một nhà phát triển đầy đủ, người cũng thích viết các hướng dẫn. Sau khi thử một loạt những điều cho đến năm thứ hai của đại học, tôi quyết định làm việc về các kỹ năng phát triển web của mình. Bắt đầu chỉ với HTML và CSS, tôi tiếp tục tiến về phía trước và có được kinh nghiệm trong PHP, JavaScript và Python. Tôi thường dành thời gian rảnh của mình hoặc làm việc cho một số dự án phụ hoặc đi du lịch xung quanh.

Làm thế nào tôi có thể so sánh ngày và giờ hiện tại với một ngày khác trong PHP?

Khi bạn đã tạo các đối tượng DateTime của mình, bạn cũng có thể gọi phương thức diff () trên một đối tượng và chuyển nó vào ngày khác để tính toán chênh lệch giữa các ngày. Điều này sẽ cung cấp cho bạn một đối tượng DateInterval. $ last = new DateTime ("25 tháng 12 năm 2020"); $ now = new datetime ("bây giờ");call the diff() method on one object and pass it the other date in order to calculate the difference between the dates. This will give you back a DateInterval object. $last = new DateTime( "25 Dec 2020" ); $now = new DateTime( "now" );

Làm thế nào tôi có thể nhận được ngày và giờ hiện tại trong PHP?

echo "Thời gian là" .date ("h: i: sa");?> Lưu ý rằng hàm php () sẽ trả về ngày/giờ hiện tại của máy chủ! date("h:i:sa"); ?> Note that the PHP date() function will return the current date/time of the server!

Tôi có thể so sánh ngày trong PHP không?

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" ; ?>

Làm thế nào tôi có thể kiểm tra xem một ngày có lớn hơn hôm nay trong PHP không?

Làm thế nào tôi có thể kiểm tra xem một ngày có lớn hơn ngày hôm nay trong PHP không ?..
$ date_now = new DateTime () ;.
$ date2 = new DateTime ("01/02/2016") ;.
if ($ date_now> $ date2) {.
echo 'lớn hơn' ;.
}else{.
Echo 'ít hơn' ;.