10/10/2018, 00:09

Hỏi về date trong PHP?

Tôi muốn làm form đăng kí thành viên.
Trong database sẽ có field "ngay_dang_ki" và "ngay_het_hạn".
hai trường này để kiểu timestamp. Khi đăng kí thì chèn vào ngay_dang_ki:
$ngay_dang_ki = date("YmdHis,time()");
Còn ngày hết hạn, tôi muốn set ngay_het_hạn = ngay_dang_ki + 120 ngay. Vậy phải gán ngày hết hạn như thế nào để lưu đuọc vào trường timestamp và khi đến đúng ngày hết hạn thì có thể truy vấn để xóa thành viên đó khỏi danh sách nếu ngay_het_han <= ngay hiện tại.
goldensea80 viết 02:19 ngày 10/10/2018
Bạn nên dùng kiểu integer thôi, cách xử lý sẽ rất đơn giản

$ngay_dang_ky=time();

Ở đây, $ngay_dang_ky sẽ là số giây tính từ 1/1/1971 thì phải.
Như vậy, ngày hết hạn là

$ngay_het_han = $ngay_dang_ky + 3600*120;
haindse viết 02:18 ngày 10/10/2018
Nếu cách này dùng hàm mktime(0,0,0,date("m"),date("d"),date("Y")). dùng hàm này rất hay, muốn set theo tháng hay năm hết hạn chỉ cần công thêm 1 số nguyên vào sau hàm date. Nhưng giá trị nhận đựoc chỉ lưu đựoc vào trưong có kiểu là char, varchar. Lưu với kiểu timestamp nó ra toàn số 0. Nếu không cần dùng để tính toán, chỉ cần dùng để hiển thị thì dùng hàm này cũng đựoc.
goldensea80 viết 02:09 ngày 10/10/2018
Được gửi bởi haindse
Nếu cách này dùng hàm mktime(0,0,0,date("m"),date("d"),date("Y")). dùng hàm này rất hay, muốn set theo tháng hay năm hết hạn chỉ cần công thêm 1 số nguyên vào sau hàm date. Nhưng giá trị nhận đựoc chỉ lưu đựoc vào trưong có kiểu là char, varchar. Lưu với kiểu timestamp nó ra toàn số 0. Nếu không cần dùng để tính toán, chỉ cần dùng để hiển thị thì dùng hàm này cũng đựoc.
Hàm mktime trả về kiểu int bạn à, vì thế trong database lưu theo kiểu int(11) là tốt nhất. Khi cần hiển thị thì dùng hàm date để formart timestamp theo ý mình.
s.code viết 02:11 ngày 10/10/2018
Từ ngày biết PHP đến giờ chưa bao giờ sử dụng các kiểu dữ liệu thời gian của Mysql. Tôi vẫn thích time() của php => Lưu cái này rồi thích chế ra cái gì cũng dc. Đơn giản.
hieutv viết 02:19 ngày 10/10/2018
nếu sử lý đc luôn bằng SQL thì tốt hơn, vì đỡ tốn công xử lý từ php rồi lại add vào mysql, biết là PHP chế ra gì cũng đc, nhưng nếu sử dụng đc tối đa hàm trong mysql thì đỡ hơn.
s.code viết 02:19 ngày 10/10/2018
Ko nên. người ta tìm mọi cách để hạn chế việc sử lý trên các hệ quản trị cơ sở dữ liệu để đạt dc tốc độ cao hơn. Thế nên mới hay phát sinh ra cache là bởi vậy.
Bài liên quan
0