我想在php中使用特定的日期格式获取昨天的日期,这是格式:
$today = date("d.m.Y"); //15.04.2013
有可能吗?
如果应该分别更改它们,请考虑月份和年份。
答案 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");
它还将处理夏令时和时区问题。简单的解决方案。