2014-08-31 111 views
0

我有星期几'N'(星期一到星期六1)和星期'W'和一年'Y'。从星期一,星期和年份开始的PHP

我怎样才能找到日期?

日的一周:4 周:35 年时间:2014年

应该输出:2014年8月28日(星期四)

我一直在使用strotime()没有任何的运气尝试。 我似乎无法找到指定星期和年份以及星期几数字的方法。

回答

0

您可以使用出于这样的目的DateTimesetISODate()方法。你的解决方案几乎是正确的,但我不明白为什么你从一开始就没有提供周日辩论。

function get_date($weekday, $week, $year) { 
    return (new DateTime())->setISODate($year, $week, $weekday)->format('Y-m-d'); 
} 

var_dump(get_date(4, 35, 2014)); 
+0

太棒了!谢谢。我没有想到setISODate中的第三个参数。 – Karem 2014-08-31 14:50:37

1

只是做了我自己的解决方案。这是你如何做到的。

function getDayDate($day, $week, $year) { 
    $day -= 1; 

    $dto = new DateTime(); 
    $dto->setISODate($year, $week); 
    $dto->format('Y-m-d') . ' 00:00:00'; // start of the week date 
    $dto->modify('+'.$day.' days'); // add the days 
    $result = $dto->format('Y-m-d') . ' 23:59:59'; 
    return $result; 
} 

$getdate = getDayDate(4, 35, 2014); 

echo $getdate; 
相关问题