$date + 1년?
제가 지정한 날짜로부터 1년 후의 날짜를 잡으려고 합니다.
코드는 다음과 같습니다.
$futureDate=date('Y-m-d', strtotime('+one year', $startDate));
잘못된 날짜를 반환하고 있습니다.왜 그런지 알아요?
$futureDate=date('Y-m-d', strtotime('+1 year'));
$futureDate는 1년 후입니다!
$futureDate=date('Y-m-d', strtotime('+1 year', strtotime($startDate)) );
$futureDate는 $startDate로부터 1년 후입니다.
오늘 날짜로 1년을 추가하려면 다음을 사용합니다.
$oneYearOn = date('Y-m-d',strtotime(date("Y-m-d", mktime()) . " + 365 day"));
다른 예에서는 다음과 같은 타임스탬프 값을 사용하여 $StartingDate를 초기화해야 합니다.
$StartingDate = mktime(); // todays date as a timestamp
이거 드셔보세요
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 365 day"));
또는
$newEndingDate = date("Y-m-d", strtotime(date("Y-m-d", strtotime($StaringDate)) . " + 1 year"));
//1 year from today's date
echo date('d-m-Y', strtotime('+1 year'));
//1 year from from specific date
echo date('22-09-Y', strtotime('+1 year'));
이 간단한 코드가 장래에 도움이 되기를 바란다:)
시험:$futureDate=date('Y-m-d',strtotime('+1 year',$startDate));
같은 문제를 안고 있었을 뿐이지만, 이것이 가장 간단한 해결책이었습니다.
<?php (date('Y')+1).date('-m-d'); ?>
// Declare a variable for this year
$this_year = date("Y");
// Add 1 to the variable
$next_year = $this_year + 1;
$year_after = $this_year + 2;
// Check your code
echo "This year is ";
echo $this_year;
echo "<br />";
echo "Next year is ";
echo $next_year;
echo "<br />";
echo "The year after that is ";
echo $year_after;
저는 OOO 접근 방식을 선호합니다.
$date = new \DateTimeImmutable('today'); //'today' gives midnight, leave blank for current time.
$futureDate = $date->add(\DateInterval::createFromDateString('+1 Year'))
사용하다DateTimeImmutable
그렇지 않으면 원래 날짜도 수정됩니다.자세한 내용은 DateTimeImmmutable: http://php.net/manual/en/class.datetimeimmutable.php 를 참조해 주세요.
현재 날짜부터 다음 작업을 수행할 수 있습니다.
new \DateTimeImmutable('-1 Month');
PHP 5.3을 사용하는 경우 기본 시간대를 설정해야 하기 때문입니다.
date_default_timezone_set()
strtotime()
돌아오고 있다bool(false)
문자열을 해석할 수 없기 때문에'+one year'
('하나'를 이해하지 못합니다). false
암묵적으로 캐스트 되고 있습니다.integer
타임스탬프0
검증하는 것이 좋습니다.strtotime()
의 출력은 그렇지 않습니다.bool(false)
다른 기능으로 밀어넣기 전에 말이죠.
반환값
성공 시 타임스탬프를 반환하고 그렇지 않으면 FALSE를 반환합니다.PHP 5.1.0 이전 버전에서는 이 함수는 실패 시 -1을 반환했습니다.
시험해 보다
$nextyear = date("M d,Y",mktime(0, 0, 0, date("m",strtotime($startDate)), date("d",strtotime($startDate)), date("Y",strtotime($startDate))+1));
또한 보다 단순하고 덜 복잡한 솔루션도 있습니다.
$monthDay = date('m/d');
$year = date('Y')+1;
$oneYearFuture = "".$monthDay."/".$year."";
echo"The date one year in the future is: ".$oneYearFuture."";
솔루션은 다음과 같습니다.date('Y-m-d', time()-60*60*24*365);
다음 정의를 사용하여 보다 읽기 쉽게 만들 수 있습니다.
define('ONE_SECOND', 1);
define('ONE_MINUTE', 60 * ONE_SECOND);
define('ONE_HOUR', 60 * ONE_MINUTE);
define('ONE_DAY', 24 * ONE_HOUR);
define('ONE_YEAR', 365 * ONE_DAY);
date('Y-m-d', time()-ONE_YEAR);
strtotime()을 사용하여 미래 시간을 얻을 수 있습니다.
//strtotime('+1 day');
//strtotime('+1 week');
//strtotime('+1 month');
$now = date('Y-m-d');
$oneYearLaterFromNow = date('Y-m-d', strtotime('+1 year'));
$oneYearLaterFromAnyDate = date('Y-m-d', strtotime('+1 year', strtotime($anyValidDateString)));
제 경우(현재까지 3년을 추가하고 싶습니다) 솔루션은 다음과 같습니다.
$future_date = date('Y-m-d', strtotime("now + 3 years"));
Gardenee, Treby, Daniel Lima에게 : 2월 29일은 어떻게 될까요?2월이 28일밖에 없는 경우도 있습니다.
언급URL : https://stackoverflow.com/questions/1905048/date-1-year
'programing' 카테고리의 다른 글
MySQL Workbench에서 EER 다이어그램을 확대하는 방법 (0) | 2022.12.27 |
---|---|
키를 올리는 대신 사용자가 입력을 마치면 javascript 기능을 실행하시겠습니까? (0) | 2022.12.27 |
MySQL보다 느린 MariaDB 그룹 (0) | 2022.12.27 |
Java에서 날짜가 두 날짜 사이인지 확인하려면 어떻게 해야 합니까? (0) | 2022.12.27 |
동기 클러스터링과 비동기 클러스터링 (0) | 2022.12.27 |