내가 가지고 있고 $date
YYYY-mm-dd
그주의 특정 $day
(0 (일요일)에서 6 (토요일)으로 지정) 을 얻고 싶다면 YYYY-mm-dd
.
내가 가진 예를 들어, 2012-10-11
같은 $date
과 5
같이 $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')
