Edit
Version 2.4

Date and Time – Nette\Utils\DateTime

Nette\Utils\DateTime is a static class extends datetime with useful functions for working with date and time.

All examples assume the following class alias is defined:

use Nette\Utils\DateTime;

Let´s take a look how it´s simple.

$netteRelease = DateTime::from('2006-01-23 10:54:00'); // create from string
$netteRelease->modify('+10 years, 1 month'); // add 10 years and 1 month
echo $netteRelease; // 2016-02-23 10:54:00
$birthday = DateTime::createFromFormat('d.m.Y', '26.02.1994'); // create from custom format
echo $birthday->getTimestamp(); // 762265863

modify is method from parent class datetime

from($time)

Create Nette\Utils\DateTime instance from string, integer or other implementations of datetime and setup default timezone.

DateTime::from(1138013640); // create from timestamp
DateTime::from(42); // create from current time and add 42 seconds
DateTime::from('1994-02-26 04:15:32'); // create from date and time
DateTime::from('1994-02-26'); // create from date then fill zeroes

createFromFormat($format, $time, $timezone = NULL)

Extends from method for set custom format and timezone.

DateTime::createFromFormat('d.m.Y', '26.02.1994'); // create from custom format and default timezone
DateTime::createFromFormat('d.m.Y', '26.02.1994', 'Europe/London'); // create with custom timezone
DateTime::createFromFormat('j. n. Y H:i', '8. 9. 2042 16:36'); // other example

setTimestamp($timestamp)

$created = new DateTime();
$created->setTimestamp(1138013640);

getTimestamp()

$publicDate = DateTime::from('2017-02-03');
$publicDate->getTimestamp(); //1486076400

modifyClone($modify = '')

Create independent copy of current instance.

$created = DateTime::from('2017-02-03');
$public = $created->modifyClone('+1 day');
echo $created; // 2017-02-03
echo $public; // 2017-02-04

implements JsonSerializable

Get string in standard ISO 8601 (used by JavaScript).

$date = DateTime::from('2017-02-03');
echo json_encode($date);