我想在PHP中使用特定日期格式获取昨天的日期,这是格式:
$today = date("d.m.Y"); //15.04.2013
有可能吗?
如果需要更改,考虑相应的月份和年份。
你做得很好
date('d.m.Y',strtotime("-1 days"));
如果月份变化,这也将起作用。
昨天的日期在PHP中:
echo date("Y-m-d", strtotime("yesterday"));
试一试
$tz = new DateTimeZone('Your Time Zone');
$date = new DateTime($today,$tz);
$interval = new DateInterval('P1D');
$date->sub($interval);
echo $date->format('d.m.y');
?>
如果您在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
(您可能希望定义一个常量或环境变量来存储您的默认时区。)
你可以通过这样做来实现
date("F j, Y", time() - 60 * 60 * 24);
或者通过
date("F j, Y", strtotime("yesterday"));
步骤1
我们需要在函数date()中设置格式化的数据:
函数date()返回一个字符串,该字符串根据给定的格式字符串使用给定的整数时间戳或当前时间(如果未给出时间戳)进行格式化。换句话说,时间戳是可选的,默认为time()的值。
<?php
echo date("F j, Y");
?>
结果: 2010年3月30日
步骤2
对于“昨天”的日期,使用php函数mktime(): 函数mktime()返回与给定参数对应的Unix时间戳。该时间戳是一个长整数,包含自Unix纪元(1970年1月1日00:00:00 GMT)以来所经过的秒数和指定的时间。 参数可以从右到左省略;因此省略的任何参数将根据当地日期和时间设置为当前值。
<?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;
?>
结果:2010年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年3月23日
针对DateTime的另一种面向对象的方法,可以设置精确的小时数:
$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London'));
echo $yesterday->format('Y-m-d H:i:s') . "\n";
试一下
<?php
$yesterday = date(“d.m.Y”, time()-86400);
echo $yesterday;
大多数答案都是过程/混合风格的。这里是纯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();