So sánh giờ trong php

Vấn đề đặt ra ở đây là với những bạn đã quen làm với winform, việc lấy thời gian dưới db và so sánh thật đơn giản. Nhưng với web, mọi request đều được trả về ở dạng chuỗi[string]. Do đó việc so sánh không còn là kiểu datetime nữa mà chúng ta phải chuyển string sang datetime bằng hàm strtotime trong php. Dưới đây là một code nhỏ thể hiện việc so sánh trên: $date = date[‘Y-m-d’]; $date_cmp[‘2012-02-20’];//vì db lưu dưới dạng này nên để khỏi phải format cho mất công thì chúng ta để luôn vậy, ví dụ tiếp theo sẽ có format. if[strtotime[$date]> strtotime[$date_cmp]]{//neu ngay hien tai lon hon ngay so sanh echo ‘Past’; } else{ echo ‘Future’;

}

Đơn giản vậy thôi, còn nếu bạn muốn định dạng kiểu thời gian thì có thể dùng func date[] như sau: $date = ‘2012-02-20’; $newdate = date[‘d/m’, strtotime[$date]];

echo $newdate; // display: 20/02

Làm thế nào để so sánh thời gian trong PHP?

Tôi muốn nói điều này:

$ThatTime ="14:08:10"; $todaydate = date['Y-m-d']; $time_now=mktime[date['G'],date['i'],date['s']]; $NowisTime=date['G:i:s',$time_now]; if[$NowisTime >= $ThatTime] { echo "ok"; }

Mã trên không in ok. Tôi đã mong đợi nó.

Chuyển đổi định dạng ngày tháng năm

Định dạng ngày giờ trong PHP, chuyển ngày hiện tại hiển thị với nhiều định dạng. Có 2 format ngày tháng năm chuẩn là: “m-d-Y”: month,day,year “Y-m-d”: year, month,day

Ví dụ chuyển từ Y-m-d sang d-m-Y

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

Ngày được lưu trữ trong cơ sở dữ liệu theo định dạng sau

2011-10-2

Nếu tôi muốn so sánh ngày hôm nay với ngày trong cơ sở dữ liệu để xem cái nào lớn hơn, tôi sẽ làm thế nào?

Tôi đã thử nó

$today = date["Y-m-d"]; $expire = $row->expireDate //from db if[$today "0", v.v.

Bạn đang xem: So sánh thời gian trong php

— Matthew nguồn 2 nhưng điều gì sẽ xảy ra nếu chúng trông như thế này, — 2011-10 / 14

Davo, sự so sánh dừng lại ở ký tự đầu tiên khác. Trong trường hợp này, chữ số thứ tư của "1" — Matthew 1 Tôi xin lỗi :], đã không đủ cẩn thận. — dav sẽ làm việc sau đây 2016-03-27 11:59:47 ::: 2016-03-14 10:30:00? — shorif2000 221

Nếu tất cả các ngày của bạn là sau ngày 1 tháng 1 năm 1970, bạn có thể sử dụng một cái gì đó như:

$today = date["Y-m-d"]; $expire = $row->expireDate; //from database $today_time = strtotime[$today]; $expire_time = strtotime[$expire]; if [$expire_time = 5.2.0, bạn có thể sử dụng lớp DateTime:

$today_dt = new DateTime[$today]; $expire_dt = new DateTime[$expire]; if [$expire_dt expireDate]; //from database if[$today->format["Y-m-d"] format["Y-m-d"]]

Cập nhật: Hoặc đơn giản sử dụng hàm date -school old [] :

if[date["Y-m-d"] NOW []], do đó sẽ rất dễ dàng để so sánh trong Truy vấn và trả về kết quả, mà không có bất kỳ vấn đề nào tùy thuộc vào Loại ngày được sử dụng

SELECT IF[expireDate expireDate];// From db $date1=date_create[$today]; $date2=date_create[$expireDate->format["Y-m-d"]]; $diff=date_diff[$date1,$date2]; //echo $timeDiff; if[$diff->days >= 30]else

— Atif Mahmood nguồn 2

Đây là một cách để có được sự khác biệt giữa hai ngày trong vài phút.

// set dates $date_compare1= date["d-m-Y h:i:s a", strtotime[$date1]]; // date now $date_compare2= date["d-m-Y h:i:s a", strtotime[$date2]]; // calculate the difference $difference = strtotime[$date_compare1] - strtotime[$date_compare2]; $difference_in_minutes = $difference / 60; echo $difference_in_minutes; — Đồng bộ nguồn Câu hỏi đang yêu cầu so sánh 2 ngày - câu trả lời của bạn là thêm một lượng nội dung bổ sung [nghĩa là đặt trạng thái trực tuyến / ngoại tuyến] không cần thiết như một câu trả lời cho câu hỏi. Phần câu trả lời của bạn trong đó việc so sánh diễn ra gần giống như câu trả lời đã có ở đây . — crazyloonybin Cập nhật câu hỏi, tôi đã đăng câu trả lời sai trong câu hỏi sai ^^;] Nó không giống như câu trả lời, chỉ cần thêm ý kiến ​​của tôi về cách so sánh chúng và nhận được sự khác biệt trong vài phút. — Syno 1 Tôi đã xóa downvote của tôi vì bản cập nhật của bạn, bây giờ trông khá hơn nhiều :] — crazyloonybin 2

Bạn có thể chuyển đổi ngày thành dấu thời gian UNIX và so sánh sự khác biệt giữa chúng trong vài giây.

$today_date=date["Y-m-d"]; $entered_date=$_POST; $dateTimestamp1 = strtotime[$today_date]; $dateTimestamp2 = strtotime[$entered_date]; $diff= $dateTimestamp1-$dateTimestamp2; //echo $diff; if [$diff

expireDate]; //from db if[[$today - $expire] > $NUMBER_OF_DAYS] — PiotrK nguồn Tại sao kỹ thuật này hoạt động nên được giải thích trong câu trả lời. — mickmackusa Vui lòng trả lời câu hỏi đã đăng của OP, không phải cách bạn giải quyết tình huống độc đáo của riêng bạn. — mickmackusa 0

Đây là guồng quay của tôi về cách có được sự khác biệt về số ngày giữa hai ngày với PHP. Lưu ý việc sử dụng "!" trong định dạng để loại bỏ phần thời gian của ngày, nhờ thông tin từ DateTime createdFromFormat mà không có thời gian .

Xem thêm: Hải Sản Phố Hà Nội - Hải Sản Phố Ở Quận Ba Đình, Hà Nội

$today = DateTime::createFromFormat["!Y-m-d", date["Y-m-d"]]; $wanted = DateTime::createFromFormat["!d-m-Y", $row]; $diff = $today->diff[$wanted]; $days = $diff->days; if [[$diff->invert] != 0] $days = -1 * $days; $overdue = [[$days expireDate; $date->add[new DateInterval["PT24H"]]; // adds 24 hours $now = new \DateTime[]; if[$now expireDate; if[$today

Chủ Đề