Search code examples
phpstrtotimestrftimemktime

How to convert week number and year into unix timestamp?


I'm trying to group together dates into a week number and year, and then I want to convert that week number back into a unix timestamp. How can I go about doing this?


Solution

  • I assume you are using ISO 8601 week numbers, and want the first day of a ISO 8601 week so that e.g. Week 1 of 2011 returns January 3 2011.

    strtotime can do this out of the box using the {YYYY}W{WW} format:

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

    Note that the week number needs to be two digits.

    Shamefully, DateTime::createFromFormat, the fancy new PHP 5 way of dealing with dates, seems unable to parse this kind of information - it doesn't have a "week" placeholder.