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_Time - Fatal编程技术网

php:从一年中的一周和一周中的一天计算日期

php:从一年中的一周和一周中的一天计算日期,php,date,time,Php,Date,Time,我目前正在努力解决以下问题:我需要像“Sun,29.05.2016 18:00”那样获取日期,但我所拥有的只是年初开始的星期数、星期几和一天中的小时数 Week: 21 Day: 7 Hour: 18 现在我的问题是如何使用php的日期函数或自己的代码获取实际日期和时间?使用DateTime对象非常简单: $week = 21; $day = 7; $hour = 18; $dateFormat = sprintf('%d-W%02d-%d', (new DateTime())->f

我目前正在努力解决以下问题:我需要像“Sun,29.05.2016 18:00”那样获取日期,但我所拥有的只是年初开始的星期数、星期几和一天中的小时数

Week: 21
Day:  7
Hour: 18

现在我的问题是如何使用php的日期函数或自己的代码获取实际日期和时间?

使用DateTime对象非常简单:

$week = 21;
$day = 7;
$hour = 18;

$dateFormat = sprintf('%d-W%02d-%d', (new DateTime())->format('Y'), $week, $day);

$x = new DateTime($dateFormat);
$x->setTime($hour, 0);
echo $x->format('Y-m-d H:i:s');

(假设当前年份)

尝试使用
setISODate
DateTime

根据您的期望输出设置2016,并将小时直接用于格式

$gendate = new DateTime();
$gendate->setISODate(2016, 21, 7); //year , week num , day
echo $gendate->format('D, d.m.Y 18:00'); //Sun, 29.05.2016 18:00
你在找什么


您可以尝试使用
setISODate
这很好。非常感谢你。我不知道会有类似“setISODate”的东西。你救了我一天!
$week_no = 21;
$day =7;
$hour = 18;

$d= new DateTime();
$d->setISODate(date('Y'),$week_no, $day);
$d->setTime ($hour,0);
echo $d->format('D, d.m.Y H:i');