php:从每周和每周的某一天计算日期

时间:2016-05-26 16:41:02

标签: php date time

我目前正在努力解决以下问题:我需要像"Sun, 29.05.2016 18:00"那样得到日期,但我所拥有的只是从年初开始的星期数,星期几和小时数当天。

Week: 21
Day:  7
Hour: 18

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

3 个答案:

答案 0 :(得分:3)

您正在寻找DateTime::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');

答案 1 :(得分:1)

使用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');

(假设当年)

答案 2 :(得分:1)

尝试使用setISODateDateTimeOnline Check

根据您的需求输出设置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