date_sub

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

date_sub别名 DateTime::sub()

说明

此函数是该函数的别名: DateTime::sub()

参见

  • DateTimeImmutable::sub() - Subtracts an amount of days, months, years, hours, minutes and seconds
  • DateTime::sub() - 对 DateTime 对象减去一定量的日、月、年、小时、分钟和秒。

add a note add a note

User Contributed Notes 4 notes

up
2
vitkor dot kruglikov at gmail dot com
9 years ago
It can be unclear for someone how to use this function.
Here is the example:

$date=date_create("2013-03-15");
date_sub($date,date_interval_create_from_date_string("40 days"));
echo date_format($date,"Y-m-d");
up
0
fpradove at gmail dot com
6 years ago
In version 5.6.31 the variable $ today is passed by reference in the function date_sub () and the interval is also applied

<?php
$today
= date_create(date('Y-m-d'));
$yesterday = date_sub($today, date_interval_create_from_date_string("1 days"));

        echo
var_dump($today);
        echo
var_dump($yesterday)
?>
up
-2
Thomas LEDUC
9 years ago
To glue to the OOP, it's better to use it with DateInterval::createFromDateString

<?php
$dateB
= new DateTime('2020-12-20');
$dateA = $dateB->sub(DateInterval::createFromDateString('10 days'));
?>

more detail here :
<?php
public static function createFromDateString ($time) {}
?>
up
-4
Jonathan Poissant
13 years ago
You cannot replace date_sub('2000-01-20') by DateTime::sub('2000-01-20') because DateTime::sub is not static. You have to create the DateTime object first.

Example:

<?php $dateA = date_sub('2000-01-20', date_interval_create_from_date_string('10 days')); ?>

will be replace by
<?php
$dateB
= new DateTime('2000-01-20');
$dateA = $dateB->sub(date_interval_create_from_date_string('10 days'));
?>
To Top