如何使用 php 获取昨天的日期?

我想得到昨天的日期使用特定的日期格式在 php 这是格式:

$today = date("d.m.Y"); //15.04.2013

有可能吗?

考虑月份和年份,如果他们应该在各自的变化。

276608 次浏览

给你

date('d.m.Y',strtotime("-1 days"));

这也将工作,如果月份变化

你可以通过

date("F j, Y", time() - 60 * 60 * 24);

或者

date("F j, Y", strtotime("yesterday"));

试试这个

<?php
$yesterday = date(“d.m.Y”, time()-86400);
echo $yesterday;

第一步

我们需要在函数 date ()中设置格式数据: Function date() returns a string formatted according to the givenformat string using the given integer timestamp or the current time ifno timestamp is given. In other words, timestampis optional anddefaults to the value of time().

<?php
echo date("F j, Y");
?>

结果: March 30,20102010年3月30日

Step 2

对于“昨天”日期使用 php 函数 mktime () : 函数 mktime ()返回与给定参数对应的 Unix 时间戳。这个时间戳是一个长整数,包含 Unix 时代(1970年1月1日00:00:00 GMT)到指定时间之间的秒数。 Arguments may be left out in order from right to left; any argumentsthus omitted will be set to the current value according to the localdate and time.

<?php
echo mktime(0, 0, 0, date("m"), date("d")-1, date("Y"));
?>

结果: 1269820800

第三步

现在合并所有,看看这个:

<?php
$yesterday = date("Y-m-d", mktime(0, 0, 0, date("m") , date("d")-1,date("Y")));
echo $yesterday;
?>

result: March 29,20102010年3月29日

操作类似,它可以接收时间小时回来。

<?php
$yesterday = date("H:i:s",mktime(date("H"), 0, 0, date("m"),date("d"), date("Y")));
echo $yesterday;
?>

结果: 20:00:00

或7天前:

<?php
$week = date("Y-m-d",mktime(0, 0, 0, date("m"), date("d")-7,date("Y")));
echo $week;
?>

结果: 2010-03-23

试试这个

        $tz    = new DateTimeZone('Your Time Zone');
$date  = new DateTime($today,$tz);
$interval = new DateInterval('P1D');
$date->sub($interval);


echo $date->format('d.m.y');


?>

您也可以使用 库来完成这项工作:

Carbon::yesterday()->format('d.m.Y');         // '26.03.2019'

其他格式:

Carbon::yesterday()->toDateString();          // '2019-03-26'
Carbon::yesterday()->toDateTimeString();      // '2019-03-26 00:00:00'


Carbon::yesterday()->toFormattedDateString(); // 'Mar 26, 2019'
Carbon::yesterday()->toDayDateTimeString();   // 'Tue, Mar 26, 2019 12:00 AM'

昨天用 PHP 的日期:

echo date("Y-m-d", strtotime("yesterday"));

如果您在 PHP 应用程序中定义了 时区(这是应该的) ,您可以这样做:

date_default_timezone_set('Europe/Paris');

然后就很简单了:

$yesterday = new DateTime('yesterday'); // will use our default timezone, Paris
echo $yesterday->format('Y-m-d'); // or whatever format you want

(You may want to define a constant or environment variable to store your default timezone.)

DateTime 的另一种 OOP 方法,它设置了确切的小时:

$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London'));
echo $yesterday->format('Y-m-d H:i:s') . "\n";

We can use the Fancy method. 就像昨天,今天

$date = new DateTime; // example 2021-04-02
date_sub($date, date_interval_create_from_date_string('1 days'));
$date = date_format($date, 'Y-m-d'); // Output will be 2021-04-01

或者我们可以在这样一个特定的日期找到昨天。

$date = date_create('2021-04-06');
date_sub($date, date_interval_create_from_date_string('5 days'));
$date = date_format($date, 'Y-m-d'); // The output will be 2021-04-01

大多数答案都是过程式/混合式的,下面是纯面向对象程序设计(OOP)风格的解决方案:

$today = new DateTime();
$yesterday = $today->sub(new DateInterval("P1D"));
echo $yesterday->format("d.m.Y");

它将解决日光节约和时区的问题,以及。简单的解决方案。

创建一个函数

function getYesterday()
{
return \Carbon\Carbon::yesterday()->format('Y-m-d');
}

调用函数

getYesterday();