[php] PHP를 사용하여 날짜에서 요일을 찾는 방법은 무엇입니까?

내가 가지고 있고 $date YYYY-mm-dd그주의 특정 $day(0 (일요일)에서 6 (토요일)으로 지정) 을 얻고 싶다면 YYYY-mm-dd.

내가 가진 예를 들어, 2012-10-11같은 $date5같이 $day, 내가 싶어 2012-10-12내가 가진 한 경우 0$day,2012-10-14

편집 :
대부분은 그것을 오해했습니다. 나는 어떤 날짜를 얻었고 $date같은 주에 0-6으로 지정된 요일을 얻고 싶습니다 $date.

그래서 아니, 나는 $date… 의 날을 원하지 않습니다 .



답변

나는 이것이 당신이 원하는 것이라고 생각합니다.

$dayofweek = date('w', strtotime($date));
$result    = date('Y-m-d', strtotime(($day - $dayofweek).' day', strtotime($date)));


답변

date () 함수를 사용할 수 있습니다.

date('w'); // day of week

또는

date('l'); // dayname

요일 번호를 가져 오는 예제 함수 :

function getWeekday($date) {
    return date('w', strtotime($date));
}

echo getWeekday('2012-10-11'); // returns 4


답변

시험

$date = '2012-10-11';
$day  = 1;
$days = array('Sunday', 'Monday', 'Tuesday', 'Wednesday','Thursday','Friday', 'Saturday');
echo date('Y-m-d', strtotime($days[$day], strtotime($date)));


답변

귀하의 날짜가 이미 DateTime이거나 방법을 DateTimeImmutable사용할 수 있습니다 format.

$day_of_week = intval($date_time->format('w'));

형식 문자열은 날짜 함수에서 사용하는 것과 동일 합니다.


의도 한 질문에 답하려면 :

$date_time->modify($target_day_of_week - $day_of_week . ' days');


답변

PHP 매뉴얼은 다음과 같이 말했습니다.

w 요일의 숫자 표현

따라서 mktime으로 날짜를 생성하고 사용할 수 있습니다. date("w", $yourTime);


답변

다만:

$ date로 2012-10-11, $ day로 5

<?php
$day=5;
$w      = date("w", strtotime("2011-01-11")) + 1; // you must add 1 to for Sunday

echo $w;

$sunday = date("Y-m-d", strtotime("2011-01-11")-strtotime("+$w day"));

$result = date("Y-m-d", strtotime($sunday)+strtotime("+$day day"));

echo $result;

?>

$ result = ‘2012-10-12’는 당신이 원하는 것입니다.


답변

수동으로해야합니다. 날짜의 현재 요일을 가져와 오프셋을 계산하고 오프셋을 날짜에 추가합니다.

$current = date("w", $date)
$offset = $day - $current
$new_date = new DateTime($date)
    ->add(
        new DateInterval($offset."D")
    )->format('Y-m-d')