Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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_Datetime - Fatal编程技术网

在PHP中获取上个月的最后一天和下个月的第一天

在PHP中获取上个月的最后一天和下个月的第一天,php,date,datetime,Php,Date,Datetime,例如,如果我有: ‘2020-01-01’ 我想要两次约会: -上个月的最后一天: “2019-12-31” -下个月的第一天: ‘2020-02-01’ 我试着用echo dateY-n-31,Strotime'2020-01-01'之类的东西;但我不知道 谢谢。使用以下代码: <?php $month_end = new DateTime("last day of last month"); $month_ini = new DateTime("first day of next m

例如,如果我有:

‘2020-01-01’

我想要两次约会:

-上个月的最后一天:

“2019-12-31”

-下个月的第一天:

‘2020-02-01’

我试着用echo dateY-n-31,Strotime'2020-01-01'之类的东西;但我不知道

谢谢。

使用以下代码:

<?php

$month_end = new DateTime("last day of last month");
$month_ini = new DateTime("first day of next month");

echo $month_end->format('Y-m-d'); // will print, Last day of last month
echo $month_ini->format('Y-m-d'); // will print First day of next month

?>

尝试此方法,使用strotime添加月份或减去月份

$date='2020-01-01';
echo date("Y-m-t", strtotime('-1 month'.$date)); //2019-12-31
echo date("Y-m-01", strtotime('+1 month'.$date)); //2020-02-01
strotime 此php函数用于将英文文本日期时间描述转换为UNIX时间戳

第一步将文本日期时间转换为时间戳 现在您有了时间戳,然后使用date函数 -上个月的最后一天:

-下个月的第一天:


您可以使用DateTime的方法modify来实现相对日期:

<?php

$dateOld = new \DateTimeImmutable('2020-01-01');

echo $dateOld->modify("last day of last month")->format('Y-m-d');
echo PHP_EOL;
echo $dateOld->modify("first day of next month")->format('Y-m-d');

请在此处尝试:

这很好,但您会如何处理特定日期?@vivek_23可与echo date'Y-m-d',strotime'上个月的最后一天',strotime'2019-12-01'一起使用;echo PHP_EOL;回音日期“Y-m-d”,标准时间“下个月第一天”,标准时间“2019-12-01”;在这个例子中:2019-12-01是我的当前月份。我知道。我更想知道datetime。我们可以在DateInterval类中获得一些运气。@vivek_23回答更新为datetime和自定义日期:很高兴使用t格式字符进行日期格式设置。有人知道如何使用DateTime对象吗?
$date='2020-01-01';
echo date("Y-m-d", 'last day of previous month', strtotime($date)));
echo date("Y-m-d", 'first day of next month', strtotime($date)));
echo date("Y-m-d", strtotime("Last day of last month"));

echo date("Y-m-d", strtotime("First day of next month"));
<?php

$dateOld = new \DateTimeImmutable('2020-01-01');

echo $dateOld->modify("last day of last month")->format('Y-m-d');
echo PHP_EOL;
echo $dateOld->modify("first day of next month")->format('Y-m-d');