如何将周数和年份转换为unix时间戳?
我试图将日期组合成一个星期和年份,然后我想将那个星期的数字转换回一个unix时间戳。我该怎么做?
我试图将日期组合成一个星期和年份,然后我想将那个星期的数字转换回一个unix时间戳。我该怎么做?
我假设您正在使用ISO 8601周数,并且想要ISO 8601周的第一天,例如 返回。Week 1 of 2011
January 3 2011
strtotime
可以使用以下格式开箱即用地执行此操作:{YYYY}W{WW}
echo date("Y-m-d", strtotime("2011W01")); // 2011-01-03
请注意,周数需要为两位数。
可耻的是,花哨的新PHP 5处理日期的方式似乎无法解析这种信息 - 它没有“周”占位符。DateTime::createFromFormat
$week
:周数$year
: 年份编号然后:
$timestamp = gmmktime (0, 0 , 0 , 1, , 4 + 7*($week - 1), $year);
这是因为根据ISO 8601,一年的第一周是包含1月4日的那一周。4 + 7*($week - 1)