2009-08-25 21 views
9

Tôi đang tìm kiếm một thư viện (mã nguồn mở) như là Joda-Time trong thế giới Java. Có thư viện nào như thế không?Trợ giúp ngày và giờ cho PHP (như Joda-Time trong Java)

Thời gian Joda rất hữu ích để tính ngày giờ. Tôi có thể thêm ngày, tuần, tháng, năm và cũng có thể dễ dàng chuyển đổi ngày giờ.

Tôi ước có thư viện như Joda-Time cho PHP.

Chỉnh sửa: Tôi cần một số chức năng có sẵn trong Joda-Time như daysBetween (để tính số ngày giữa 2 ngày), monthsBetween và weeksBetween ... Một số chức năng về ngày cộng và trừ có sẵn từ chính PHP.

Trả lời

0

Tôi biết một thành phần của Zend Framework: Zend_Date. Nó hoạt động tốt cho công việc này.

Tôi không chắc chắn, nhưng bạn có thể sử dụng nó mà không có toàn bộ Khung.

Zend Date

0

Tôi không quen thuộc với Joda, nhưng bạn đã mất một cái nhìn vào DateTime? Nó làm tất cả những điều (và một số chi tiết) mà bạn đã đề cập.

0

strtotimedate đôi khi có thể làm điều kỳ diệu, đặc biệt là nếu bạn đang làm việc với các ngày> = 1970 (ví dụ, có thể được mã hóa như một dấu thời gian UNIX).

Nếu bạn đang sử dụng phiên bản PHP đủ mới, lớp DateTime (được thêm vào PHP 5.2; nhưng một số phương thức đã được thêm vào PHP 5.3) cũng có thể hữu ích - các lớp khác cũng có thể giúp ích.

+0

cảm ơn, tôi chỉ biết về strtotime.:) strtotime là tốt đẹp nhưng không có chức năng như, daysBetween, weeksBetween, monthsBetween. joda có tất cả tôi cần phải chơi với ngày. – nightingale2k1

-1

Không cần thư viện bên ngoài. PHP là nhiều hơn khả năng này đã được.

<?php 
/** These examples work with the current time **/ 
echo strtotime("now"), "\n"; 
echo strtotime("10 September 2000"), "\n"; 
echo strtotime("+1 day"), "\n"; 
echo strtotime("+1 week"), "\n"; 
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n"; 
echo strtotime("next Thursday"), "\n"; 
echo strtotime("last Monday"), "\n"; 

/** This is a made up time **/ 
$lessMonth = strtotime("06/19/1986 3:00PM") 
$lessMonth = strtotime("-1 month", $lessMonth); 

echo $lessMonth, "\n"; 
echo gmdate('c', $lessMonth); 

/** 86 400 seconds in a day */ 
$daysBetween = (strtotime("now") - $lessMonth)/86400 
?> 
+16

So sánh chức năng ngày chuẩn PHP với Jodatime dường như cho biết bạn đã không dành nhiều thời gian với Jodatime ... ;-) – Guillaume

+2

Điều này cho thấy chính xác những gì bạn không nên làm! Hard coding giây là hoàn toàn sai. Điều này không tính đến: năm nhuận, tiết kiệm ánh sáng ban ngày, múi giờ, thậm chí là giây nhuận! Đừng làm thế. – MikeWallaceDev

0

Bạn có thể thử thư viện này cho PHP Ngày giờ http://nuclearscripts.com/php/scripts-and-programs/date-and-time/php-date-library.html

Trích dẫn từ ngày Thư viện có

Các PHP là bộ sưu tập các chức năng PHP bản địa chuyên nghiệp để làm việc với ngày tháng. Nó không yêu cầu bất kỳ phần mở rộng PHP nào. Thư viện này bao gồm các chức năng hữu ích nhất để hoạt động cùng với ngày tháng. Nó bao gồm các chức năng để xác nhận ngày, ngày thay đổi bằng cách đưa lượng ngày, tính toán chênh lệch giữa hai ngày, tính toán tuần số cho ngày nhất định và nhiều hơn nữa. Nó xử lý đúng năm nhuận và là ISO tương thích. Chuyên viên chuyên nghiệp đã dành hơn 3 ngày để nghiên cứu chủ đề, mã hóa thư viện, viết hướng dẫn và đặt tất cả ở đây.

Tôi không tự mình thử nghiệm nó.

Các vấn đề liên quan