Cho một ngày nhất định, cách dễ nhất để xác định số ngày cho đến ngày đó (bằng PHP) là bao nhiêu? Tôi đang cố gắng xây dựng một tiện ích đếm ngược, Cảm ơn!Bao nhiêu ngày cho đến ngày X-Y-Z?
Trả lời
<?php
$cdate = mktime(0, 0, 0, 12, 31, 2009, 0);
$today = time();
$difference = $cdate - $today;
if ($difference < 0) { $difference = 0; }
echo "There are ". floor($difference/60/60/24)." days remaining";
?>
Không coi ngày là số nguyên. Sử dụng cơ sở dữ liệu của bạn, có hỗ trợ tốt để xử lý lịch/thời gian.
select datediff("2009-11-12", now())
unix timestamp FTW – andufo
PHP 5.3 đã giới thiệu lớp DateTime triển khai chức năng 'khác'. Xem http://www.php.net/manual/en/datetime.diff.php
Mở rộng về câu trả lời schnaader của, đây là một chức năng one-liner mà phải mất một chuỗi ngày như một tham số nhưng chỉ trả về số ngày:
<?php
function days_until($date){
return (isset($date)) ? floor((strtotime($date) - time())/60/60/24) : FALSE;
}
?>
Ngày phút và giây định dạng:
// current time
$today = new DateTime(format_date(time(), 'custom', 'd M Y H:i:s'));
// date to which we want to compare (A Drupal field in my case).
$appt = new DateTime(format_date($yourdate_is_timestamp, 'custom', 'd M Y H:i:s'));
// Months
$months_until_appt = $appt->diff($today)-> m;
// days
$days_until_appt = $appt->diff($today)-> days;
// hours
$hours_until_appt = $appt->diff($today)-> h;
// minutes
$minutes_until_appt = $appt->diff($today)-> i;
// seconds
$seconds_until_appt = $appt->diff($today)-> s;
echo 'days until: ' . $days_until_appt;
echo 'hours until: ' . $hours_until_appt;
echo 'minutes until: ' . $minutes_until_appt;
echo 'seconds until: ' . $seconds_until_appt;
'Lớp DateTime' FTW –
Theo http://php.net/manual/en/ref.datetime.php' -> days' (ví dụ) không phải là một lớp hợp lệ phương pháp. Bạn có thể sửa đổi mã của bạn để sử dụng định dạng '-> ('d')', '-> ('m')', v.v. vì vậy nó rõ ràng hơn cho những người truy cập? – Wes
Đối với hồ sơ - Tôi đã cập nhật để sử dụng 'DateTime' - không thể tin câu trả lời được chấp nhận bằng cách sử dụng' DateTime' được sử dụng trong giải pháp. – Wes
Tôi vừa xem xét điều này trong mã của tôi cho một ứng dụng trực tiếp nơi hệ thống không chính xác xem hôm nay và ngày mai như hôm nay. Chúng tôi vừa đi vào Thời gian mùa hè của Anh và điều này đã gây ra sự cố với ứng dụng của chúng tôi.
Tôi bây giờ sử dụng sau đây, mà là đem lại cho tôi kết quả chính xác:
function days_away_to($dt) {
$mkt_diff = strtotime($dt) - time();
return floor($mkt_diff/60/60/24) + 1; # 0 = today, -1 = yesterday, 1 = tomorrow
}
Tất nhiên, sử dụng lớp DateTime là giải pháp tốt nhất đi về phía trước ...
Đây chính xác là mã giống như [đã được đăng ở đây] (http://stackoverflow.com/a/8807610/447356) và bạn chỉ cần thay đổi tên biến. -1 cho cố gắng để có được đại diện cho công việc của người khác và lãng phí thời gian của chúng tôi. –
Cảm ơn SW nhưng tiếc là giải pháp đó không hiệu quả đối với tôi: nó cho tôi 0 cho 2014-03-31 nói với tôi rằng đó là ngày hôm nay (hôm nay là 30 tháng 3 ở Anh).Tôi đã thêm +1, sửa lỗi đó cho tôi. –
Vì vậy, bạn nên làm nổi bật điều này trong bài đăng của mình bằng cách liên kết với câu trả lời khác và giải thích rằng bạn vừa thêm 1 để làm cho nó hoạt động. Vui lòng chỉnh sửa và cho tôi biết. –
- 1. Bao nhiêu ngày trong Java với Lịch
- 2. bao nhiêu ngày để thêm cho "nửa tháng"
- 3. chuỗi bash cho đến ngày
- 4. Làm thế nào để có được bao nhiêu ngày cho đến sinh nhật tiếp theo của tôi?
- 5. chuỗi ngày tháng chuyển đổi jquery/javascript cho đến ngày
- 6. Hạn ngạch thiết bị mỗi ngày cho Android c2dm là bao nhiêu?
- 7. Tôi có thể tính toán có bao nhiêu ngày cuối tuần giữa hai ngày trong SQL Server?
- 8. Đếm ngày cho đến hôm nay moment.js
- 9. Có một thuật toán để xác định có bao nhiêu ánh sáng ban ngày không?
- 10. Đặt giới hạn ngày của ngày trong ngày cho android
- 11. Ngày tới chuỗi <-> Chuỗi đến ngày
- 12. Chuyển đổi ngày đến một ngày trong tuần vào R
- 13. Ngày giữa hai ngày trong Python
- 14. Java Ngày đến mili giây
- 15. Lặp lại theo ngày, bắt đầu từ ngày x đến ngày kết thúc
- 16. Cách tìm ngày đầu tiên của tháng tiếp theo và các ngày còn lại cho đến ngày này với PHP
- 17. có bao nhiêu múi giờ?
- 18. Dân cư Highcharts X-Axis với Ngày Cho Một Từ Và Đến Ngày
- 19. Ngày mua sắm cho đến ngày Giáng sinh truy cập jQuery
- 20. jQuery thêm 7 ngày cho đến ngày (văn bản kiểu đầu vào và đầu ra)
- 21. Django: Nhóm theo ngày (ngày, tháng, năm)
- 22. Bao nhiêu dữ liệu cho mỗi nút trong cụm Cassandra?
- 23. Có bao nhiêu byte cho mỗi inode?
- 24. php: chuyển đổi mili giây cho đến ngày
- 25. Bao nhiêu con trỏ không ảnh hưởng đến hiệu quả?
- 26. Truncate ngày đến năm tài chính
- 27. Chuỗi chuyển đổi Sqlite đến ngày
- 28. Tải ảnh lên cho ngày trước
- 29. Chuyển đổi ngày Đến ToShortDateString Trong Razor
- 30. MYSQL Ngày giờ đến giờ gần nhất
cảm ơn cho điều này! Giải quyết vấn đề của tôi :) – yanike
Điều này thực sự phụ thuộc vào định nghĩa của bạn "ngày cho đến". Ví dụ: đoạn mã này cho tôi biết năm mới trước đó là 34 ngày nữa, và wolfram alpha, google, siri và mọi trang web tôi tìm kiếm đều nói với tôi 35 ngày. FWIW – AlBeebe
@AlBeebe sau đó chỉ cần thêm +1. Có gì khó khăn về điều đó? – Devfly