이 3문장을 php로 표현하려면 어떻게 하나요?
2015-08-13 (오늘)을 기준점 숫자 3000 이라 지정해 이 숫자를 변수 $day에 할당합니다.
이 변수 $day는 매일 1씩 증가합니다.
K라는 반복문은 26부터 시작해 $day까지 반복적으로 실행해 역순으로 정렬합니다.
세 번째 줄의 26부터 시작해 $day까지 반복적으로 실행한다 표현은 아래처럼 하는 걸로 압니다.
for ($cnt=26; $cnt<=$day; $cnt++) {
K라는 반복문
}
혹, 위 핑크색 굵은색 문장을 PHP로 표현하는 방법 좀 부탁드립니다.
답변 2개 / 댓글 6개
2015-08-13이라는 날짜는 지정되어야 할 것같네요.
14일이 되었을때도 오늘이 들어가면 $day의 날짜가 변경되지 않겠죠.
$startDate = new DateTime("2015-08-13"); // 지정된날짜$nowDate = date("Y-m-d"); // 오늘날짜 $dateDiff = date_diff($startDate, $nowDate); // 지정된날짜와 오늘날짜의 차이 echo $dateDiff->days + 3000; // 위에서 구한 차이에 기준점숫자 3천을 더해서 출력
답변에 대한 댓글 3개
$startDate = new DateTime("2015-08-01"); // 지정된날짜
$nowDate = new DateTime(date("Y-m-d")); // 오늘날짜
$dateDiff = date_diff($startDate, $nowDate); // 지정된날짜와 오늘날짜의 차이
echo $dateDiff->days + 3000 ; // 위에서 구한 차이에 기준점숫자 3천을 더해서 출력
음 쉬우면서도 어렵네요
일단 기준점을 정해야겠지요
오늘이 기준점이던지 어제가 기준점이던지
일단은 기준점을 2015-01-01로 했다치면
$standardDay = "2015-01-01";
함수를 하나 만들어보겠습니다
function getDateNum($d) {
$_timestamp = array(86400, 3600, 60, 1);
$d = strtotime($d);
$minusDay = "0";
foreach($_timestamp as $key => $value) {
if($d <= (time() - $value) && empty($minusDay) && $key == 0) {
$minusDay = (int)((time() - $d)/$_timestamp[$key]);
}
}
Return $minusDay;
}
echo getDateNum($standDay);
이렇게 하면 오늘부터 1월1일이 며칠 전인지 나오게 됩니다
이렇게 나온 숫자를 3000에 더해주시면 됩니다
역으로 하실거면
for($cnt = $day; $cnt >= 26; $cnt--) {
}
머 이런식으로 하면 삼천몇부터해서 26까지 반복하겠지요
답변에 대한 댓글 3개
또,
$standardDay 변수와 function 과의 관계를 모르겠습니다.
마지막엔 $standDay 변수가 나오구.....
--------------------------------------------------------------
$standardDay = "2015-01-01";
함수를 하나 만들어보겠습니다
function getDateNum($d) {
$_timestamp = array(86400, 3600, 60, 1);
$d = strtotime($d);
$minusDay = "0";
foreach($_timestamp as $key => $value) {
if($d <= (time() - $value) && empty($minusDay) && $key == 0) {
$minusDay = (int)((time() - $d)/$_timestamp[$key]);
}
}
Return $minusDay;
}
echo getDateNum($standDay);
--------------------------------------------------------------
드래곤된다 님 소스가 직관적이라, 드래곤된다 님 소스를 사용하고자 하는데,
드래곤된다 님 소스도 어디가 좀 문제가 있는 것 같네요.
답변을 작성하려면 로그인이 필요합니다.
근데, 아래처럼 적어줬는데, 결과값이 3000으로 찍혀 나오네요. 3012가 나와야 하는데...
아무래도 마지막 줄이 잘못된 것 같은데, php 까막눈이라 잘 모르겠네요.
<?
$startDate = new DateTime("2015-08-01"); // 지정된날짜
$nowDate = date("Y-m-d"); // 오늘날짜
$dateDiff = date_diff($startDate, $nowDate); // 지정된날짜와 오늘날짜의 차이
echo $dateDiff->days + 3000 ; // 위에서 구한 차이에 기준점숫자 3천을 더해서 출력
?>
그리고, 역순으로 정렬하는 방법도 아시면 부탁드려요.
숫자가 몇천단위이다 보니...가장 최근 게 가장 먼저 찍혔으면 싶거든요..
아래처럼 적어줘봤는데, 아무 것도 안 뜨네요.
<?php
$startDate = new DateTime("2015-08-01"); // 지정된날짜
$nowDate = date("Y-m-d"); // 오늘날짜
$dateDiff = date_diff($startDate, $nowDate); // 지정된날짜와 오늘날짜의 차이
echo $dateDiff ; // 위에서 구한 차이에 기준점숫자 3천을 더해서 출력
?>