如何在 php 中以特定格式显示今天接下来的 3 个日期?



我正在尝试从今天开始打印出接下来的 3 天。这段代码工作正常,但我需要日期采用这种格式"2018 年 9 月 29 日"。更改格式不断给我错误。

<?php
// Set timezone
date_default_timezone_set('AFRICA/LAGOS');
// Start date
$date = date('Y-m-d');
// End date
$end_date = date('Y-m-d', strtotime("+3 days"));
while (strtotime($date) <= strtotime($end_date)) {
$date=DateTime::createFromFormat('Y-m-d', $date)->modify('+1 day')->format('Y-m-d');
echo $date.', ';
}
echo "<br><br>";
?>

您可以使用date()for()循环轻松完成:-

<?php
date_default_timezone_set('AFRICA/LAGOS');
$date = date('Y-m-d');
for($i =1;$i<=3;$i++){
echo $end_date = date('Y M,d', strtotime("+$i days"));
echo PHP_EOL;
}

https://3v4l.org/YXZEe

有点功能的方法:

<?php
function getNextDatesFromCurrentDate($how_many_dates){
date_default_timezone_set('AFRICA/LAGOS');
for($i =1;$i<=$how_many_dates;$i++){
echo $end_date = date('Y M,d', strtotime("+$i days"));
echo PHP_EOL;
}
}
getNextDatesFromCurrentDate(3);

https://3v4l.org/1vKVA

Use Carbon library, to Add days
Like , 
$date = Carbon::today();
$nextday = $date->addDay();

看看 PHP 日期格式文档,你可以用英文打印月份的名称,format('Y-F-d')

或者你可以创建自己的函数,用你提供的数字返回月份的名称。

向特定日期添加日期数。 您需要将两个参数传递给strtotime()函数。

1.天数

2.开始日期

要格式化为"2018 年 9 月 29 日",您需要为date('Y M, d')功能提供正确的格式。

$start_date = date('Y-m-d');
$dates = collect();
foreach (range(1,3) as $number_of_days) {
$dates->push(date('Y M, d', strtotime("+$number_of_days days", strtotime($start_date))));
}

最新更新