Rough date object allowing dates like `Jan 2005` or `2006`

0.1.3 2015-03-08 23:35 UTC


Needed to store a "rough date" in one of my project, may be useful for otheres.

Build Status Scrutinizer Code Quality


Execute from shell the following command:

$ composer require mareg/rough-date

Or add "mareg/rough-date": "~0.1" to your composer.json:

    "require": {
        "mareg/rough-date": "~0.1"


Create a RoughDate object from the string:

$roughDate = RoughDate::fromString('May 2005');
echo $roughDate->format();

Or from a DateTime date object:

$date = new \DateTime();
$roughDate = RoughDate::fromDateTime($date);
echo $roughDate->format();

Accepted date formats

When creating an object through RoughDate::fromString():

  • Y-m-d, e.g. 2015-02-22, but also 2013-05-00 and 2013-00-00 are correct
  • Y/m/d and Y.m.d are accepted
  • j. M Y, e.g. 13. May 2005
  • M Y, e.g. May 1985
  • Y, e.g. 1978

Output date formats

When calling RoughDate::format():

  • For a full date output accepts all variables as in date() method
  • For other dates only available variables will be substituded and unavailable ones will be removed, e.g.:
  • for date 2015-02-00 and format j M Y you'll get Feb 2015
  • for date 1978-00-00 and format j M Y you'll get 1978