Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php获取昨天的日期?_Php_Date - Fatal编程技术网

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

如何使用php获取昨天的日期?,php,date,Php,Date,我想在php中使用特定的日期格式获取昨天的日期这是以下格式: $today = date("d.m.Y"); //15.04.2013 可能吗 如果月份和年份分别需要更改,请考虑它们。好了 date('d.m.Y',strtotime("-1 days")); 如果月份发生变化,这也会起作用您可以通过 date("F j, Y", time() - 60 * 60 * 24); 或者 试试这个 <?php $yesterday = date(“d.m.Y”, time()-86400

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

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

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

好了

date('d.m.Y',strtotime("-1 days"));
如果月份发生变化,这也会起作用

您可以通过

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

试试这个

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

步骤1

我们需要在函数date()中设置格式数据: 函数date()返回一个字符串,该字符串使用给定的整数时间戳或当前时间(如果未给定时间戳)根据给定的信息格式字符串进行格式化。换句话说,timestamp是可选的,默认为time()的值


结果: 2010年3月30日

步骤2

对于“昨天”日期,请使用php函数mktime(): 函数mktime()返回与给定参数对应的Unix时间戳。此时间戳是一个长整数,包含Unix纪元(1970年1月1日00:00:00 GMT)和指定时间之间的秒数。 参数可以按从右到左的顺序省略;任何省略的参数都将根据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:00

或7天前:

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

结果: 2010-03-23试试这个
您也可以使用库执行此操作:

其他格式:

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\u default\u timezone\u set('Europe/Paris');
那么就简单到:

$forday=新日期时间('forday');//将使用默认时区巴黎
echo$Dayed->格式('Y-m-d');//或者任何你想要的格式

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

另一种用于DateTime的OOP方法,可设置精确的小时数:

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

我们可以用奇特的方法。 像昨天这样。到今天

$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

日期(“年月日”,时间()-60*60*24);你试过我的解决方案吗?这将适用于不断变化的月份,也是我上面的用户名“noob”为其评论添加了良好含义的完美时刻:)夏令时不保证。。。现在人们真的应该使用DateTime对象,如果在UTC时间操作,它会工作得很好。日期\默认\时区\设置('UTC');看到这个了吗。。这将适用于将月份更改为new DateTime(“昨天”)$DateTime=new DateTime(“昨天”)、new DateTimeZone(“您的时区”);用这个代码解释一下答案就好了。由于夏时制,一天并不总是有86400秒!所以这个计算可能一年两次都是错误的!。。。由于闰秒的原因。一个小吹毛求疵:如果时间跨越DST更改,您的函数将在午夜时分陷入麻烦。明确地说,超过中午有帮助。错了。关于DST的3件事:1它取决于服务器时间,若服务器有正确的时区,它不会影响我的功能。并非整个世界都受到DST的影响,有些地方不使用DST。3大多数地方在一天中的头几个小时(如凌晨2点或3点)都会改变时间,因此不会影响一天的变化。1。那么这个函数知道并注意到一天可以不是24小时?2.即使一个坏了的钟每天也会对两次。3.被盗/复制的准确时间对于计算来说并不重要。没有意义1一天不超过24小时,直到DST改变时间,服务器根据2改变时间当然是,但这不是重点3这非常重要,如果时间在午夜改变,而不是在其他时间,你的想法可能是正确的
echo date("Y-m-d", strtotime("yesterday")); 
$yesterday = new DateTime("yesterday 09:00:59", new DateTimeZone('Europe/London'));
echo $yesterday->format('Y-m-d H:i:s') . "\n";
$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