DateTime::getTimestamp

DateTimeImmutable::getTimestamp

DateTimeInterface::getTimestamp

date_timestamp_get

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

DateTime::getTimestamp -- DateTimeImmutable::getTimestamp -- DateTimeInterface::getTimestamp -- date_timestamp_getGets the Unix timestamp

Description

Object oriented style

public DateTime::getTimestamp(): int
public DateTimeImmutable::getTimestamp(): int
public DateTimeInterface::getTimestamp(): int

Procedural style

Gets the Unix timestamp.

Parameters

This function has no parameters.

Return Values

Returns the Unix timestamp representing the date.

Changelog

Version Description
8.0.0 These functions no longer return false on failure.

Examples

Example #1 DateTime::getTimestamp() example

Object oriented style

<?php
$date 
= new DateTime();
echo 
$date->getTimestamp();
?>

Procedural style

<?php
$date 
date_create();
echo 
date_timestamp_get($date);
?>

The above examples will output something similar to:

1272509157

See Also

add a note add a note

User Contributed Notes 3 notes

up
32
heiccih at gmail dot com
10 years ago
In 32-bit system the unix timestamp will overflow if the date goes beyond year 2038 and this method will return false. In 64-bit systems this function will still work as intended. For more information please see http://en.wikipedia.org/wiki/Year_2038_problem.
up
40
Justin Heesemann
13 years ago
Note that for dates before the unix epoch getTimestamp() will return false, whereas format("U") will return a negative number.

<?php
$date
= new DateTime("1899-12-31");
// "-2209078800"
echo $date->format("U");
// false
echo $date->getTimestamp();
?>
up
1
Julien Bornstein
3 years ago
Please note that DateTime::gettimestamp() will return an integer, but DateTime::format("U") will return a string.

timestamp must always be typed as int because in PHP, timestamps are integers.

eg:
- strftime ( string $format [, int $timestamp = time() ] ) : string
- time() // return int
- ...

So IMHO, as PHP becomes more and more a typed language, avoid using DateTime::format("U") to avoid this kind of errors "strftime() expects parameter 2 to be int, string given"
To Top