- Supports many formats (
m/d/Y
,m/d/Y g:i A
and other) - Customization of formats and options
- i18n support
- Extended DateInterval (support total months/weeks/hours/minutes/seconds between a dates)
- Standalone module/component for Rock Framework
- Installation
- Quick Start
- Custom format
- Custom option format
- i18n
- Difference/Interval between a dates
- Documentation
- Requirements
From the Command Line:
composer require romeoz/rock-date
In your composer.json:
{
"require": {
"romeoz/rock-date": "*"
}
}
use rock\date\DateTime;
(new DateTime)->format(); // output: current date in the format Y-m-d H:i:s
// default format
(new DateTime)->isoDate(); // output: current date in the format Y-m-d
// modify date
DateTime::set('1988-11-12')->date(); //output: 11/12/1988
$datetime = DateTime::set('1988-11-12');
$datetime->setFormats(['shortDate' => 'j / F / Y']);
$datetime->shortDate(); // output: 12 / November / 1988
$datetime = new DateTime('1988-11-12');
$datetime->setFormatOption('ago', function (DateTime $datetime) {
return floor((time() - $datetime->getTimestamp()) / 86400) . ' days ago';
});
$datetime->format('d F Y, ago'); // output: 12 November 1988, 9574 days ago
$dateTime = new DateTime('1988-11-12');
$dateTime->setLocale('ru');
$dateTime->format('j F Y'); // output: 12 ноября 1988
$diff = (new DateTime('2012-02-01'))->diff(new DateTime('2015-01-01'));
echo $diff->total_months; // output: 36
echo $diff->format('%R%tm months'); // output: +36 months
Added additional placeholders:
%tm
- total months%tw
- total weeks%th
- total hours%ti
- total minutes%ts
- total seconds
- PHP 5.4+
The DateTime library is open-sourced software licensed under the MIT license.