10/10/2018, 13:21

Cộng trừ ngày tháng trong php

Mình đang làm đề tài hoàn tất khóa học php mình bị bí ngay chổ cộng trừ ngày tháng chuẩn trong php. Ví dụ ngày 3/3/2009 - 27/2/2009 = 4 vì tháng 2 chỉ có 28 ngày(không tính nhuần).
Và có cách nào tạo bảng select ngày tháng chuẩn giống như thế ko. Nếu Tháng mình chọn là tháng 2 thì bên select ngày chĩ hiện từ 1 -> 28 thôi. Mình nghĩ việc này chắc liên quan đến ajax. Nhưng ko biết làm và không biết thư viện.
Mong anh em giúp đỡ.
toannet viết 15:36 ngày 10/10/2018
Cái đó nên dùng javascript
Demo => http://www.dynamicdrive.com/dynamici...iccalendar.htm
NguoiVietNET88 viết 15:27 ngày 10/10/2018
Mình đã xem đemo của bạn nhưng mình chưa có thấy nó cộng trừ ra sao cả, nó chỉ hiển thị ngày tháng hệ thống thôi. chả lẻ không có cách nào hay sao.
muhiepsy viết 15:27 ngày 10/10/2018
không biết thuật toán tính số ngày trong tháng 2 của năm nhuận/ko nhuan à, thế mà cũng khoe cái mẽ học bách khoa - KHTN
pdah viết 15:27 ngày 10/10/2018
Bác muhiepsy hôm nay có chuyện gì bức bối mà post bài nào cũng hằn học thế. Thư giãn đi bác.
Chuyện tính khoảng cách giữa 2 ngày trong PHP thì bạn có thể đổi ra 2 ngày ra timestamp rồi trừ nhau, sau đó chia cho 24*3600 ( số giây trong 1 ngày ) thì được số ngày
namduong8889 viết 15:29 ngày 10/10/2018
Được gửi bởi pdah
Bác muhiepsy hôm nay có chuyện gì bức bối mà post bài nào cũng hằn học thế. Thư giãn đi bác.
Chuyện tính khoảng cách giữa 2 ngày trong PHP thì bạn có thể đổi ra 2 ngày ra timestamp rồi trừ nhau, sau đó chia cho 24*3600 ( số giây trong 1 ngày ) thì được số ngày
Chính xác!!!!!
Code:
// HÀM NÀY MK TIME TRẢ VỀ UNIX TIME STAMP
<?
$buoito=mktime(giờ, phút, giây, tháng, ngày, năm)
?>

[=========> Bổ sung bài viết <=========]

Được gửi bởi muhiepsy
không biết thuật toán tính số ngày trong tháng 2 của năm nhuận/ko nhuan à, thế mà cũng khoe cái mẽ học bách khoa - KHTN
Làm gì mà phải cao siêu "thuật toán" thuật tiếc thế bác
Tính số ngày của tháng 2 năm 2009:
$timestamp=mktime(0,0,0,2,1,2009);
$songay=date(t,$timestamp);
pdah viết 15:22 ngày 10/10/2018
Được gửi bởi namduong8889
bác
Tính số ngày của tháng 2 năm 2009:
$timestamp=mktime(0,0,0,2,1,2009);
$songay=date(t,$timestamp);
Hehe, cái này gọi là bóc lột sức lao động của PHP đó bác.
Em thì vẫn cổ vũ kiểu tính toán dựa trên giá trị của năm hơn. Không phải là thuật toán gì cao siêu nhưng ít ra là mình không quá phụ thuộc vào ngôn ngữ lập trình.
NguoiVietNET88 viết 15:25 ngày 10/10/2018
Cảm ơn các bác. Mình đã tìm ra được hướng giải quyết rồi. Post lên cho anh em tham khảo.
$date_parts1=explode($dformat, $beginDate);//loai bo ki tu dac biet nhu '-' hoac '/'
$date_parts2=explode($dformat, $endDate);
$start_date=gregoriantojd($date_parts1[1], $date_parts1[2], $date_parts1[0]);//($thang,$ngay,$nam)
$end_date=gregoriantojd($date_parts2[1], $date_parts2[2], $date_parts2[0]);
return $end_date - $start_date;
không biết thuật toán tính số ngày trong tháng 2 của năm nhuận/ko nhuan à, thế mà cũng khoe cái mẽ học bách khoa - KHTN
Bác muhiepsi cũng đừng hằn học như thế chứ. Người ta ko biết mới nhờ mình. bác ko mách thì thôi chứ nặng lời thế
namduong8889 viết 15:31 ngày 10/10/2018
Được gửi bởi pdah
Hehe, cái này gọi là bóc lột sức lao động của PHP đó bác.
Em thì vẫn cổ vũ kiểu tính toán dựa trên giá trị của năm hơn. Không phải là thuật toán gì cao siêu nhưng ít ra là mình không quá phụ thuộc vào ngôn ngữ lập trình.
Bác thông cảm... tính em cứ đặt năng suất lên hàng đầu
zhangliang viết 15:22 ngày 10/10/2018
Trừ ngày


$date = "2009-03-02";
$new_date = strtotime ( '-2 day' , strtotime ( $date ) ) ;
$new_date = date ( 'Y-m-j' , $new_date );
echo $new_date;


Trừ tuần

$date= "2009-03-02";
$new_date = strtotime ( '-2 week' , strtotime ( $date ) ) ;
$new_date = date ( 'Y-m-j' , $new_date );
echo $new_date;


Trừ tháng

$date= "2009-03-02";
$new_date = strtotime ( '-2 month' , strtotime ( $date ) ) ;
$new_date = date ( 'Y-m-j' , $new_date );
echo $new_date;


Trừ năm

$date= "2009-03-02";
$new_date = strtotime ( '-2 year' , strtotime ( $date ) ) ;
$new_date = date ( 'Y-m-j' , $new_date );
echo $new_date;


Cộng ngày tháng chỉ việc đổi dấu - thành +
Bài liên quan
0