10/10/2018, 10:11

Tính ngày hết hạn bằng PHP

Trong CSDL mình có một cột là ngày hết hạn: expire, bây giờ mình muốn làm một trang mà hiện những ngày trước và sau khi hết hạn là 10 ngày, tức là 10 < expire < 10. Mình làm mãi mà không được.Mong các bạn giúp mình với....
plzh33 viết 12:17 ngày 10/10/2018
- trước tiên bạn cần lấy thời gian từ cơ sở dữ liệu ra rồi đổi ra ngày( cái này dùng hàm date() thì phải)
- lầy ngày hiện tại.
-> 10 < ngày hiện tại - ngày trong cơ sở dữ liệu < 10
Mr.Triết viết 12:26 ngày 10/10/2018
Ngày bạn lưu kiểu gì?
loren viết 12:14 ngày 10/10/2018
hu hu mình làm thế rồi mà sao ko đc?trong CSDL là theo kiểu yyyy/mm/dd đó bạn.Help me...
olbk viết 12:27 ngày 10/10/2018
bạn xem ở đây và chú ý tới date_format:
http://www.php.net/manual/en/ref.datetime.php
Và giá trị là chuỗi ký tự nên ta cũng có thể sử lý kiểu string.
hoanghon2005 viết 12:25 ngày 10/10/2018
Lấy ngày hết hạn trừ cho ngày hiện hành nếu =10 hoặc =-10 là lấy được hai trường hợp mà
bancankhong viết 12:16 ngày 10/10/2018
để thuận tiện cho đổi ngày tính ngày, về cơ bản phải lưu dạng số -> 11 ký tự int(11)
dùng loại dữ liệu là timestamp
lợi ích:
- order by date -> index trên số nguyên siêu nhanh.
-2 tính ngày : 1 ngày = 24 * 60 * 60 = 86400 -> là số nguyên -> cứ thế mà tăng giảm tính expired chưa bao giờ đơn giảm hơn
- ví dụ: nhà đất
shha viết 12:23 ngày 10/10/2018
Được gửi bởi loren
Trong CSDL mình có một cột là ngày hết hạn: expire, bây giờ mình muốn làm một trang mà hiện những ngày trước và sau khi hết hạn là 10 ngày, tức là 10 < expire < 10. Mình làm mãi mà không được.Mong các bạn giúp mình với....
Đơn giản mà, cho luôn cái code


<?php
$today = date("j F Y");
$time = strtotime(date("j F Y"));
$muoi_ngay_truoc = strtotime("-10 day", $time);
echo date("j F Y", $muoi_ngay_truoc);
echo " - ".$today." - ";
$muoi_ngay_sau = strtotime("10 day", $time);
echo date("j F Y", $muoi_ngay_sau);
?>
loren viết 12:15 ngày 10/10/2018
Mình cảm ơn các bạn nhiều nhé, mình làm như sau nhưng không lúc truy vấn thì không được:
$firstday=date('Y-m-d', strtotime('-10 day'));
$backday=date('Y-m-d', strtotime('+10 day'));
sau đó truy vấn lấy điều kiện là: WHERE $firstday< expire < $backday
các bạn cho mình ý kiến với thật sự là mình làm nhiều cách mà vẫn chưa có kêt quả.Nó giống với ví dụ của bạn "bancankhong" đó, nhưng sao mình làm không được ta huhu chắc truy vấn sai rồi...vì trong CSDL lưu ngày expire theo dạng là YYYY-mm-dd, Mong các bạn giúp đỡ
txnbac viết 12:13 ngày 10/10/2018
Theo mình ngĩ bạn nên format lại database field theo kiểu DATE là tốt nhất. Sau đó code PHP theo như bạn loren nói ở trên.

Chúc bạn thành công!
Bài liên quan
0