10/10/2018, 00:18
Giúp mình làm việc với Ngày Tháng trong PHP
Chào các bác!
Em đang gặp chỗ bí khi làm việc với ngày tháng ở PHP. Công việc là thế này, em đang xây dựng cấu trúc gửi bài viết chèn dữ liệu vào CSDL có các trường title, content, post_date, expired.
post_date sẽ chèn thời gian khi gửi bài viết
Bây giờ em muốn có thêm lựa chọn người gửi bài có thể chỉ định số ngày hết hạn (expried) là 1-30 ngày sau khi gửi bài.
Vậy làm sao tính toán được công thức:
expired= post_date + [1-30]
rồi chèn vào trường expired giá trị kiểu ngày tháng để so sánh được với giá trị time() hiện tại.
Ý muốn là những bài hết hạn sẽ không được đăng và sẽ làm hàm xóa những bài hết hạn 1 cách tự động.
Cảm ơn các bác đã quan tâm
<*kakalot*>
Em đang gặp chỗ bí khi làm việc với ngày tháng ở PHP. Công việc là thế này, em đang xây dựng cấu trúc gửi bài viết chèn dữ liệu vào CSDL có các trường title, content, post_date, expired.
post_date sẽ chèn thời gian khi gửi bài viết
Bây giờ em muốn có thêm lựa chọn người gửi bài có thể chỉ định số ngày hết hạn (expried) là 1-30 ngày sau khi gửi bài.
Vậy làm sao tính toán được công thức:
expired= post_date + [1-30]
rồi chèn vào trường expired giá trị kiểu ngày tháng để so sánh được với giá trị time() hiện tại.
Ý muốn là những bài hết hạn sẽ không được đăng và sẽ làm hàm xóa những bài hết hạn 1 cách tự động.
Cảm ơn các bác đã quan tâm
<*kakalot*>
Bài liên quan





Các bác copy thử mã PHP này rồi chạy, tôi sẽ giải thích từng dòng:
$post_date=time(); // Gán giá trị biến $post_date bằng giá trị thời gian hiện thời echo $post_date; // Hiển thị giá trị biến trước khi cộng echo "<br>"; $plus=24; // Định nghĩa biến ngày được cộng vào $expired=$post_date+($plus*3600); // Công thức để tính giá trị của ngày hết hạn echo $expired; // Hiển thị ngày hết hạn dạng số nguyên echo "<br>"; echo gmdate("d.m.Y, h:m:s", $expired+$timezone*3600); // Trình bày ngày hết hạn dạng Ngày.Tháng.Năm trong đó biến $timezone là biến múi giờ (Khai báo ở nơi khác - Việt nam là 7) // Có thể thay bằng lệnh echo gmdate("d.m.Y, h:m:s", $expired+7*3600);<*kakalot*>
Cái này là bí về Mysql + PHP ko chỉ riêng PHP. Vấn đề cụ thể như sau:
Tôi có 1 trường trong bảng CSDL là timestamp với kiểu giá trị datetime. Giá trị mặc định của nó là '0000-00-00 00:00:00'
Bây giờ làm sao so sánh nó được với ngày tháng năm hiện tại, vì yêu cầu hiện thời là phải so sánh nó với giá trị thời gian hiện tại nếu thời gian hiện tại (VD: 2006-05-19 23:48:19) lớn hơn biến đó 7 ngày thì thực thiện công việc 1, ngược lại thực hiện công việc 2.
Rất rất mong các bác giúp đỡ. Tôi tìm mãi ko thấy trên tài liệu.
<*kakalot*>
$day = 4;
$basedate = strtotime("2007-12-30");
$date1 = strtotime("+$day days", $basedate);
echo date("Y-m-j", $date1);
?>
PS : dạo này ddth bị DDOS hay sao ấy mà vô chậm quá :|