romeoz/rock-date

A simple DateTime library for PHP with I18N

0.12.0 2015-11-07 02:41 UTC

This package is not auto-updated.

Last update: 2024-04-23 01:35:36 UTC


README

Latest Stable Version Total Downloads Build Status HHVM Status Coverage Status License

Features

  • 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

Table of Contents

Installation

From the Command Line:

composer require romeoz/rock-date

In your composer.json:

{
    "require": {
        "romeoz/rock-date": "*"
    }
}

Quick Start

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

Custom format

$datetime = DateTime::set('1988-11-12');
$datetime->setFormats(['shortDate' => 'j / F / Y']);

$datetime->shortDate(); // output: 12 / November / 1988

Custom option format

$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

i18n

$dateTime = new DateTime('1988-11-12');
$dateTime->setLocale('ru');

$dateTime->format('j  F  Y'); // output: 12  ноября  1988 

Difference/Interval between a dates

$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

Documentation

Requirements

  • PHP 5.4+

License

The DateTime library is open-sourced software licensed under the MIT license.