So sánh ngày trong php

Bạn đang xem: NEW so sánh thời gian trong php Tại AZ Pet

Làm thế nào để so sánh hai ngày trong PHP?

Ngày tháng được lưu trữ trong cơ sở dữ liệu ở đị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 ngày nào lớn hơn, tôi sẽ làm như thế nào?

Tôi đã thử nó

$ hôm nay = Ngày[“Ymd”]; $ hết hạn = $ dòng->ngày hết hạn // từ cơ sở dữ liệu nếu như[$ hôm nay $ expireDate]

nhưng nó không thực sự hoạt động theo cách đó. Một cách khác để làm điều đó?

so sánh ngày php – Nguồn Sarmen B. Gán ngày cơ sở dữ liệu cho một đối tượng DateTime, sau đó so sánh các đối tượng đó. Bạn có thể tìm thấy một ví dụ điển hình trong stackoverflow.com/questions/961074/…

– Đá

Phản hồi:

80

trong cơ sở dữ liệu, ngày có dạng như thế này 2011-10-2

Lưu trữ nó trong YYYY-MM-DD sau đó chuỗi so sánh sẽ hoạt động vì “1”> “0”, v.v.

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

– Nguồn Matthew 2nhưng điều gì sẽ xảy ra nếu họ trông như thế này, – 2011-10 / 14Davo, sự so sánh chỉ dừng lại ở nhân vật khác đầu tiên. Trong trường hợp này, chữ số thứ tư của “1” – Matthew đầu tiênTôi xin lỗi :], không đủ cẩn thận. —Dav Tác phẩm sau có hoạt động 2016-03-27 11:59:47 ::: 2016-03-14 10:30:00 không? – shorif2000

221

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

$ hôm nay = Ngày[“Ymd”]; $ hết hạn = $ dòng->ngày hết hạn; // từ cơ sở dữ liệu $ today_time = strtotime[$ hôm nay]; $ expire_time = strtotime[$ hết hạn]; nếu như [$ expire_time $ today_time]

Nếu bạn đang sử dụng PHP 5> = 5.2.0, bạn có thể sử dụng lớp DateTime:

$ today_dt = Mới Ngày giờ[$ hôm nay]; $ expire_dt = Mới Ngày giờ[$ hết hạn]; nếu như [$ expire_dt $ today_dt]

Hoặc một cái gì đó dọc theo các đường dây.

– Nguồn Hugo Peixoto
Nếu tôi nhớ không nhầm, mối quan tâm ngày 1 tháng 1 năm 1970 chỉ áp dụng cho các phiên bản PHP cũ hơn chạy trên những cửa sổ và nó không bao giờ là một vấn đề trong Unix. – Alvaro Gonzalez Tôi thích câu trả lời này. Đây là một lựa chọn tuyệt vời để chuyển đổi ngày thành strtotime [] —Erich Garcia 2Không phải bây giờ là “Nếu tất cả các ngày của bạn đều sau ngày 1 tháng 1 năm 1970” và “trước năm 2038”? Xem lỗi y2k38 của chúng tôi. strtotime sẽ trả về false cho các ngày dài hơn. stackoverflow.com/questions/2012589/… —Hy Lưu ý rằng phương pháp DateTime là phương pháp được ưu tiên. Đối tượng này có thể làm được nhiều hơn bao giờ hết. – Machavity DateTime mới [“bây giờ”] cũng hoạt động để lấy ngày hôm nay —Breith

23

Chỉ để bổ sung các câu trả lời đã cho, hãy xem ví dụ sau:

$ hôm nay = Mới Ngày giờ[“”]; $ expireDate = Mới Ngày giờ[$ dòng->ngày hết hạn]; // từ cơ sở dữ liệu nếu như[$ hôm nay->định dạng[“Ymd”] $ expireDate->định dạng[“Ymd”]]

Cập nhật: Hoặc chỉ sử dụng hàm date -school old []:

nếu như[Ngày[“Ymd”]

Ngày[“Ymd”, strtotime[$ expire_date]]] – nguồn d.raev đầu tiênNgày là một hàm, không phải là một lớp / hàm tạo. – spdionis 2spdionis cảm ơn vì nhận xét, tôi đã thay đổi chữ viết hoa để loại bỏ bất kỳ sự nhầm lẫn nào có thể xảy ra. – d.raev

6

Tôi sẽ không làm điều này với PHP. Cơ sở dữ liệu cần biết hôm nay là ngày gì [ví dụ: sử dụng MySQL-> NOW []], vì vậy sẽ rất dễ dàng so sánh trong truy vấn và trả về kết quả mà không gặp bất kỳ vấn đề gì. Chủ đề nào phụ thuộc vào loại ngày được sử dụng

CHỌN NẾU[ngày hết hạn

HIỆN NAY[],ĐÚNG VẬY,SAI] thích isExpired FROM tableName – Nguồn của Tiến sĩ Molle cảm ơn nhưng tôi thực sự sử dụng date [], tôi không lưu trữ ngày hôm nay trong cơ sở dữ liệu – Trung sĩ B. 4Nhưng bạn đang lưu trữ expireDate trong cơ sở dữ liệu. So sánh ngày này với NOW [] —Dr. Molle 4

$ hôm nay = Ngày[“Ymd”];// Ymd H: i: s $ expireDate = Mới Ngày giờ[$ dòng->ngày hết hạn];// Từ cơ sở dữ liệu $ date1=date_create[$ hôm nay]; $ date2=date_create[$ expireDate->định dạng[“Ymd”]]; $ diff=date_diff[$ date1,$ date2]; // echo $ timeDiff; nếu như[$ diff->ngày > = 30]khác

—Nguồn Atif Mahmoud

2

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

// đặt ngày $ date_compare1= Ngày[“dmY h: i: sa”, strtotime[$ date1]]; // ngày bây giờ $ date_compare2= Ngày[“dmY h: i: sa”, strtotime[$ date2]]; // tính toán sự khác biệt $ chênh lệch = strtotime[$ date_compare1] strtotime[$ date_compare2]; $ chênh lệch_in_minutes = $ chênh lệch / 60; echo $ chênh lệch_in_minutes; – Đồng bộ nguồn Câu hỏi 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 không cần thiết [tức là đặt trạng thái trực tuyến / ngoại tuyến] làm câu trả lời cho câu hỏi. Phần câu trả lời của bạn nơi mà sự so sánh diễn ra gần giống với câu trả lời đã có ở đây. —Crazyloonybin Đã cập nhật câu hỏi, mình đăng sai đáp án sai câu hỏi ^^;] Không giống đáp án, chỉ cần thêm ý kiến ​​của mình vào cách so sánh chúng và nhận được sự khác biệt trong vài phút. – Syno đầu tiênTôi đã xóa phiếu phản đối của mình vì bản cập nhật của bạn, bây giờ có vẻ tốt 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=Ngày[“Ymd”]; $ enter_date=$ _POST“Ngày tháng”>; $ dateTimestamp1 = strtotime[$ today_date]; $ dateTimestamp2 = strtotime[$ enter_date]; $ diff= $ dateTimestamp1$ dateTimestamp2; // echo $ diff; nếu như [$ diff

0] – Shruthi Red Spring

0

Tôi cũng có vấn đề này và tôi giải quyết nó bằng cách:

$ hôm nay = Ngày[“Ymd”]; $ hết hạn = str_replace[“-“, “”, $ dòng->ngày hết hạn]; // từ cơ sở dữ liệu nếu như[[$ hôm nay $ hết hạn] > NUMBER_OF_DAYS đô la] – Nguồn PiotrK Tại sao kỹ thuật này hoạt động nên được giải thích trong câu trả lời. – mimacusa Vui lòng trả lời câu hỏi do OP đăng, không phải cách bạn giải quyết tình huống độc nhất của mình. – mimacusa

0

Đây là vòng quay của tôi về cách nhận đượ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 “!” ở định dạng để loại bỏ phần thời gian của ngày, sử dụng thông tin từ DateTime đã tạoFromFormat 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

$ hôm nay = Ngày giờ::createFromFormat[“! Ymd”, Ngày[“Ymd”]]; $ muốn = Ngày giờ::createFromFormat[“! dmY”, $ dòng“WANTED_DELIVERY_DATE”>]; $ diff = $ hôm nay->sự khác biệt[$ muốn]; $ ngày = $ diff->ngày; nếu như [[$ diff->đổi] ! = 0] $ ngày = đầu tiên * $ ngày; $ quá hạn = [[$ ngày

0] ? đúng vậy : sai]; để in “không phải”; – nguồn thợ kim hoàn

-đầu tiên

Tôi đã tìm thấy câu trả lời trên một blog và nó đơn giản như sau:

strtotime[Ngày[“O”.“-01-01”]] strtotime[$ newdate]] /86400

Và bạn sẽ nhận được ngày giữa 2 ngày.

– nguồn kooli Điều này dường như để giải quyết một vấn đề khác. Vui lòng chỉ trả lời câu hỏi của OP. – mimacusa

-đầu tiên

Nó hoạt động nhờ vào logic so sánh chuỗi của PHP. Bạn chỉ cần kiểm tra …

nếu như [$ startdate $ date] nếu như [$ startdate > $ date]

Cả hai ngày phải ở cùng một định dạng. Các chữ số phải được đệm bằng các số 0 ở đầu và được sắp xếp theo thứ tự từ quan trọng nhất đến ít quan trọng nhất. Ym-d và Ymd H: i: thỏa mãn các điều kiện này.

– nguồn sanjyot đầu tiêndm-Y sẽ không hoạt động. Ymd [với số 0 như 2016-05-08] sẽ hoạt động. Kiểm tra các ngày này ở định dạng dm-Y 01-10-2016 và 20-02-2016, so sánh dưới dạng chuỗi 0 – Arxeiss Đây là bằng chứng cho thấy kỹ thuật của bạn sẽ không so sánh chính xác ngày OP với ngày hôm nay: 3v4l.org/SNHKT – mimacusa

OP có một định dạng ngày khác. ngày có dạng như 2011-10-2.

– mimacusa

-đầu tiên

Nếu bạn muốn một ngày [$ date] hết hạn trong một khoảng thời gian, ví dụ: ngày hết hạn mã thông báo khi đặt lại mật khẩu, đây là cách thực hiện:

$ date = $ dòng->ngày hết hạn; $ date->thêm vào[Mới Khoảng ngày[“PT24H”]]; // thêm 24 giờ $ bây giờ = Mới Ngày giờ[]; nếu như[$ bây giờ $ date]

Nhưng trong trường hợp của bạn, bạn có thể thực hiện phép so sánh như sau:

$ hôm nay = Mới Ngày giờ[“Ymd”]; $ date = $ dòng->ngày hết hạn; nếu như[$ hôm nay

$ date] – nguồn faye.babacar78 Câu trả lời này bỏ qua câu hỏi đã đăng ban đầu. Vui lòng sử dụng dữ liệu mẫu do OP cung cấp. – mimacusa Không chính xác những gì anh chàng đang yêu cầu giúp đỡ nhưng tôi nghĩ cách này có thể giúp ích nếu bạn hiểu các nguyên tắc. —Faye.babacar78 Tôi hiểu các nguyên tắc, nhưng mã này không trả lời câu hỏi được đặt ra. Trang này đã chứa đầy những câu trả lời không chính xác và không liên quan – điều này chỉ khiến người tìm kiếm bối rối và lãng phí thời gian của họ. Tôi cố gắng để ý các nhà nghiên cứu. – mimacusa Chà, tôi nghĩ không khó lắm, lẽ ra anh ấy có thể sử dụng lớp DateTime [] thay vì hàm date []. Câu trả lời mà tôi đưa ra ở trên là để cung cấp cho các nhà nghiên cứu một số ý tưởng. —Faye.babacar78 đầu tiênTôi sẽ ngừng lặp lại chính mình và bỏ cuộc thảo luận này. Giải pháp cao thứ 2 [stackoverflow.com/a/3847762/2943403] cho thấy một cách cực kỳ đơn giản [không thể đánh bại] để tạo hai đối tượng datetime. Tôi hoàn toàn không biết phương thức ma thuật requestDate [] của bạn làm gì – không có đề cập đến nó ở bất cứ đâu. Tôi sẽ không sử dụng câu trả lời của bạn, cũng như khuyến nghị bất kỳ nhà nghiên cứu nào sử dụng giải pháp của bạn. Tôi không thấy mình thay đổi phiếu bầu của mình. – mimacusa

-2

Trước tiên, hãy thử đưa ra định dạng bạn muốn cho ngày và giờ hiện tại của máy chủ:

Nhận ngày giờ hiện tại

$ current_date = getdate [];

Tách ngày và giờ để quản lý chúng như bạn muốn:

$ current_date_only = $ current_date “-“. $ current_date “-“. $ current_date ; $ current_time_only = $ current_date. “:”. $ current_date. “:”. $ current_date;

So sánh nó tùy thuộc vào việc bạn chỉ sử dụng ngày tháng hay thời gian trong cơ sở dữ liệu của mình:

$ hôm nay = $ current_date_only. “”. $ current_time_only;

Ở đâu

$ hôm nay = $ current_date_only;

nếu [$ hôm nay

Tôi hy vọng nó sẽ giúp

– nguồn ernestoloredo Câu trả lời này không cố gắng trả lời câu hỏi ban đầu. OP không quan tâm đến giờ, phút hay giây. – mimacusa Bằng cách sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu chính sách cookie và chính sách bảo mật của chúng tôi. Cc by-sa 3.0 được cấp phép với yêu cầu ghi công.

Xem thêm bài viết thuộc chuyên mục: Thú Cảnh Khác

Chào cả nhà, mình là Duy, mình là một người sống tình cảm, yêu động vật và dành cực nhiều thời gian chăm sóc chó mèo. Hiện mình đồng thời là chủ của trang web duypets.com này. Với kinh nghiệm 25 năm yêu chó mèo và 3 năm chăm sóc các giống chó cảnh, mình tin những bài viết trên đây sẽ hữu ích cho các sen

Bạn đang xem: NEW cung hoàng đạo của jack Tại AZ Petcung hoàng đạo của jack LAM, Theo Trí Thức Trẻ 10:00 20/04/2020 Nhìn …

Bạn đang xem: NEW Tải Game Ít Dung Lượng Cho Java 3D Dung Lượng Thấp Cho Điện Thoại Tại AZ PetTải Game Ít Dung …

Bạn đang xem: NEW Cung Hoàng Đạo Ghen Nhất Tại AZ PetCung Hoàng Đạo Ghen Nhất Hổ Cáp kiên quyết, mạnh mẽ, khôn ngoan …

Bạn đang xem: NEW Khuôn Mặt Đẹp Trai Là Như Thế Nào ? Tiêu Chuẩn “Trai Xinh Gái Đẹp Tại AZ PetKhuôn Mặt Đẹp …

Thông tin liên hệ

Duy Pets là một shop phụ kiện cho thú cưng chuyên mua bán các dòng chó cảnh, như chó poodle, chó pugs, các loại chó ngoại khác. Di Động: 097 6666 156 Địa chỉ: Hẻm 84 Phạm Hùng, Bình Hưng, Bình Chánh, TPHCM

Video liên quan

Bài Viết Liên Quan

Chủ Đề