2017-11-07 3 views

답변

0

당신의 작업은 날짜를 필요로하지 않는 것 전혀 기능을하지 않습니다. 간단한 조회 배열로 충분합니다.

코드 : (Demo)

function daysUntil($start,$end){ 
    $lookup=['Sunday'=>0,'Monday'=>1,'Tuesday'=>2,'Wednesday'=>3,'Thursday'=>4,'Friday'=>5,'Saturday'=>6]; 
    $days=$lookup[$end]-$lookup[$start]; 
    return "From $start to $end: ".($days<1?$days+7:$days); 
} 

echo daysUntil('Wednesday','Saturday'),"\n"; // Thursday, Friday, Saturday 
echo daysUntil('Monday','Friday'),"\n";  // Tuesday, Wednesday, Thursday, Friday 
echo daysUntil('Thursday','Thursday'),"\n"; // [assumed next week] 
echo daysUntil('Friday','Monday'),"\n";  // Saturday, Sunday, Monday 
echo daysUntil('Saturday','Sunday'),"\n";  // Sunday 
echo daysUntil('Sunday','Saturday'),"\n";  // Monday, Tuesday, Wednesday, Thursday, Friday, Saturday 
echo daysUntil('Sunday','Wednesday');   // Monday, Tuesday, Wednesday 

출력 :

From Wednesday to Saturday: 3 
From Monday to Friday: 4 
From Thursday to Thursday: 7 
From Friday to Monday: 3 
From Saturday to Sunday: 1 
From Sunday to Saturday: 6 
From Sunday to Wednesday: 3 

아니면 대체 할 수있는 4 기능을 조회 배열은 호출

$days=date('w',strtotime($end))-date('w',strtotime($start)); 

http://sandbox.onlinephpfunctions.com/code/b349aae527654d25a3dbd92df2a3dde386ca423a

+0

오른쪽 나는 다른 대답을 테스트하지만 잘못된 결과를 낸다. – predactor

+0

어제 또 다른 것을 썼지 만 네가 간단하다. – predactor

+0

기꺼이 도와 줘. (항상 귀하의 질문에 귀하의 코딩 시도를 포함하십시오 - 이것은 귀하의 질문에 downvotes을 피할 것입니다) – mickmackusa

3

3를 사용하여 PHP date_diff() 기능 (docs).

$datetime1 = date_create(date('Y-m-d',strtotime('wednesday'))); 
$datetime2 = date_create(date('Y-m-d',strtotime('saturday'))); 

$interval = date_diff($datetime1, $datetime2); 

echo $interval->format('%d'); // For days 

은 "3"를 반환,하지만 당신은 그것을 실행 따라 때 정화 당

$datetime1 = date_create($date_1); 
$datetime2 = date_create($date_2); 

$interval = date_diff($datetime1, $datetime2); 

echo $interval->format('%d'); // For days 

, 당신은 임의의 토요일과 수요일은 그것을 계산하기 위해 만들 수 있습니다.

+0

은 내가 몇 시간 전에 내 정답에 downvote를 수신하기 때문에 약간의 불만을해야합니다 생각합니다. 내 사과하지만 올바른 결과를 제공하지 않기 때문에 나는이 답변을 downvote해야합니다. https://3v4l.org/BO44o – mickmackusa

0

당신은 새로운 날짜 시간 수업 분석의 오늘의 이름을 쓸 수 있습니다 : 하나의 행 버전 아래 또한

<?php 
    $datetime1 = new DateTime('Sunday'); 
    $datetime2 = new DateTime('Wednesday'); 
    $interval = $datetime1->diff($datetime2); 
    echo $interval->format('%R%a days'); 
    ?> 

:

echo (new DateTime('Sunday'))->diff(new DateTime('Wednesday'))->format('%a days'); 
+0

사과, 몇 시간 전에 내 정답에 downvote를 copping 후 조금 불만이 있어야합니다. 이 대답은 원하는 결과를 제공하지 않습니다. https://3v4l.org/lhVOu – mickmackusa

0
public function numOfDaysBetween($start,$end) 
{ 
$days=[0=>'Saturday',1=>'Sunday',2=>'Monday',3=>'Tuesday',4=>'Wednesday',5=>'Thursday',6=>'Friday']; 
$index_start=array_search($start, $days); 
    $index_end=array_search($end, $days); 
    if($index_start==$index_end) 
    { 
     return 7; 
    }else if($index_start<$index_end) 
    { 
     return $index_end-$index_start; 
    }else 
    { 
     return 7-($index_start-$index_end); 
    } 

}

+0

이 답변은 나에게 부끄러운 것처럼 보입니다. 이것은 표절과 너무 흡사합니다. 이 대답은 내가 받아 들인 솔루션의 효율성이 떨어진다. 제 8 시간 후에 게시되었으며 페이지에 아무런 가치를 제공하지 않습니다. – mickmackusa

관련 문제