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

uni*_*mer 72 php date

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

$today = date("d.m.Y"); //15.04.2013
Run Code Online (Sandbox Code Playgroud)

可能吗?

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

Fab*_*bio 226

你去吧

date('d.m.Y',strtotime("-1 days"));
Run Code Online (Sandbox Code Playgroud)

如果月份变化,这也会有效

  • **错误的**。关于 DST 的 3 件事: 1 它取决于服务器时间,如果服务器具有正确的时区,则不会影响我的功能。2 并非全世界都受到 DST 的影响,有些地方不使用 DST。3 大多数地方都会在一天的头几个小时(例如凌晨 2 点或 3 点)更改时间,因此不会影响更改的日期。 (3认同)
  • **没有意义** 1 一天不是 24 点,直到 DST 更改时间并且服务器根据时间更改 2 当然是,但这不是重点 3 这非常重要,如果时间正确,您的想法可能是正确的午夜更改,其他时间不更改 (2认同)

Fab*_*ert 14

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

date_default_timezone_set('Europe/Paris');
Run Code Online (Sandbox Code Playgroud)

那么就很简单了:

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

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


alw*_*arn 10

试试这个

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

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

        ?>           
Run Code Online (Sandbox Code Playgroud)

  • 新的DateTime('昨天') (11认同)

Gau*_*g P 7

步骤1

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

<?php
echo date("F j, Y");
?>
Run Code Online (Sandbox Code Playgroud)

结果: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"));
?>
Run Code Online (Sandbox Code Playgroud)

结果:1269820800

第3步

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

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

结果:2010年3月29日

操作类似,可以接收时间小时.

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

结果:20:00:00

或者7天前:

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

结果:2010-03-23


Nul*_*teя 6

你可以做到这一点

date("F j, Y", time() - 60 * 60 * 24);
Run Code Online (Sandbox Code Playgroud)

或者

date("F j, Y", strtotime("yesterday"));
Run Code Online (Sandbox Code Playgroud)

  • 夏令时无法保证......人们现在应该使用DateTime对象 (3认同)

小智 6

PHP 中的昨天日期:

echo date("Y-m-d", strtotime("yesterday")); 
Run Code Online (Sandbox Code Playgroud)