如何将周数和年份转换为unix时间戳?

2022-08-30 14:07:29

我试图将日期组合成一个星期和年份,然后我想将那个星期的数字转换回一个unix时间戳。我该怎么做?


答案 1

我假设您正在使用ISO 8601周数,并且想要ISO 8601周的第一天,例如 返回。Week 1 of 2011January 3 2011

strtotime可以使用以下格式开箱即用地执行此操作:{YYYY}W{WW}

echo date("Y-m-d", strtotime("2011W01")); // 2011-01-03

请注意,周数需要为位数。

可耻的是,花哨的新PHP 5处理日期的方式似乎无法解析这种信息 - 它没有“周”占位符。DateTime::createFromFormat


答案 2
  • $week:周数
  • $year: 年份编号

然后:

$timestamp = gmmktime (0, 0 , 0 , 1, , 4 + 7*($week - 1), $year);

这是因为根据ISO 8601,一年的第一周是包含1月4日的那一周。4 + 7*($week - 1)


推荐