How to find day of week in php in a specific timez

2019-01-03 09:00发布

I am confused while using php to handle date/time.

What I am trying to do is this: When a user visits my page I am asking his timezone and then displaying the 'day of week' in his timezone.

I don't want to use the browser's day. I want to do this calculation in php.

This is how I am trying to achieve it:

  1. The timezone entered by user
  2. Unix time stamp calculated by php time() function.

But I dont know how to proceed... How would i get the 'day of week' in this timezone.

11条回答
倾城 Initia
2楼-- · 2019-01-03 09:33

"Day of Week" is actually something you can get directly from the php date() function with the format "l" or "N" respectively. Have a look at the manual

edit: Sorry I didn't read the posts of Kalium properly, he already explained that. My bad.

查看更多
太酷不给撩
3楼-- · 2019-01-03 09:34
$dw = date( "w", $timestamp);

Where $dw will be 0 (for Sunday) through 6 (for Saturday) as you can see here: http://www.php.net/manual/en/function.date.php

查看更多
Emotional °昔
4楼-- · 2019-01-03 09:34

Check date is monday or sunday before get last monday or last sunday

 public function getWeek($date){
    $date_stamp = strtotime(date('Y-m-d', strtotime($date)));

     //check date is sunday or monday
    $stamp = date('l', $date_stamp);      
    $timestamp = strtotime($date);
    //start week
    if(date('D', $timestamp) == 'Mon'){            
        $week_start = $date;
    }else{
        $week_start = date('Y-m-d', strtotime('Last Monday', $date_stamp));
    }
    //end week
    if($stamp == 'Sunday'){
        $week_end = $date;
    }else{
        $week_end = date('Y-m-d', strtotime('Next Sunday', $date_stamp));
    }        
    return array($week_start, $week_end);
}
查看更多
爱情/是我丢掉的垃圾
5楼-- · 2019-01-03 09:35

I think this is the correct answer, just change Europe/Stockholm to the users time-zone.

$dateTime = new \DateTime(
    'now',
    new \DateTimeZone('Europe/Stockholm')
);
$day = $dateTime->format('N');

ISO-8601 numeric representation of the day of the week (added in PHP 5.1.0) 1 (for Monday) through 7 (for Sunday)

http://php.net/manual/en/function.date.php

For a list of supported time-zones, see http://php.net/manual/en/timezones.php

查看更多
虎瘦雄心在
6楼-- · 2019-01-03 09:40
echo date('l', strtotime('today'));
查看更多
登录 后发表回答