【发布时间】:2014-03-07 19:15:55
【问题描述】:
我从我的数据库中提取了三条信息,即年份、周数 (1-52) 和星期几(周一、周二、周三)。我需要将其转换为日期。
我将如何在 php 中执行此操作?
【问题讨论】:
-
到目前为止你有什么尝试?
-
非常接近重复:stackoverflow.com/questions/5763340/… PHP
strtotime()会为你做的
我从我的数据库中提取了三条信息,即年份、周数 (1-52) 和星期几(周一、周二、周三)。我需要将其转换为日期。
我将如何在 php 中执行此操作?
【问题讨论】:
strtotime() 会为你做的
这会将您的 $day 值转换为所需的日期格式。 试试这个
$yr="2011";
$week="01";
$day="Monday";
$day=date("D",strtotime($day));
echo date("Y-m-d", strtotime($yr."W".$week."D ".$day));;
【讨论】:
试试这个:
$yr="2014";
$week="01";
$day = "Mon";
echo date("Y-m-d", strtotime($yr."W".$week."D ".$day));
【讨论】:
做了一点挖掘,看起来一天需要采用数字格式才能使 strtotime 转换正常工作。使用诸如 'Monday' 这样的字符串是行不通的。
$yr = "2014";
$week = "01";
$day = "1"; //Monday
echo date("Y-m-d", strtotime($yr . "W" . $week . $day)); // "2014W011"
请注意,我没有包含当天的“D”前缀,因为这看起来跟在 ISO8601 之后。
可以通过以下几种方式将您的日子转换为数字: 您可以从周一到周日创建一个数组并使用数组键,或者更简单一些,您可以执行以下操作:
$day date("N", strtotime("Monday")); // will echo 1
所以完整的代码可能如下所示:
$yr = "2014";
$week = "01";
$day = date("N", strtotime("Monday")); //
echo date("Y-m-d", strtotime($yr . "W" . $week . $day)); // "2014W011"
这里有一个演示来检查:http://3v4l.org/EllgQ
【讨论】: