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

时间:2013-04-15 06:42:50

标签: php date

我想在php中使用特定的日期格式获取昨天的日期,这是格式:

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

有可能吗?

如果应该分别更改它们,请考虑月份和年份。

11 个答案:

答案 0 :(得分:203)

你去了

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

如果月更改

,这也会有效

答案 1 :(得分:7)

第1步

我们需要在函数date()中设置格式数据: 函数date()使用给定的整数时间戳或当前时间ifno timestamp返回根据givenformat字符串格式化的字符串。换句话说,timestampis是可选的,并且默认为time()的值。

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

结果: 2010年3月30日

第2步

对于“昨天”日期使用php函数mktime(): 函数mktime()返回与给定参数对应的Unix时间戳。此时间戳是一个长整数,包含Unix Epoch(1970年1月1日00:00:00 GMT)和指定时间之间的秒数。 参数可以从右到左依次排除;任何argumentsthus省略将根据localdate和time设置为当前值。

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

结果: 1269820800

第3步

现在合并所有并查看:

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

结果: 2010年3月29日

同样地操作,可以接收时间。

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

结果: 20时○○分00秒

或7天前:

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

结果: 2010-03-23

答案 2 :(得分:5)

你可以通过

来做到这一点
date("F j, Y", time() - 60 * 60 * 24);

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

答案 3 :(得分:5)

试试这个                 

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

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

        ?>           

答案 4 :(得分:4)

如果您在PHP应用程序中定义了timezone(您应该这样做),则可以这样操作:

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

(您可能需要定义一个常数或环境变量来存储默认时区。)

答案 5 :(得分:2)

试试这个

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

答案 6 :(得分:1)

PHP中的昨天日期:

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

答案 7 :(得分:1)

DateTime的另一种OOP方法,可以设置确切的小时数:

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

答案 8 :(得分:0)

您也可以使用Carbon库进行此操作:

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'

答案 9 :(得分:0)

我们可以使用 Fancy 方法。 像昨天这样。到今天

$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

答案 10 :(得分:0)

大多数答案都是程序性/混合式的。这是纯 OOP 风格的解决方案:

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

它还将处理夏令时和时区问题。简单的解决方案。