PHP에서 날짜 시간에 분 추가
나는 많은 구글링과 PHP 수동 읽기를 한 후 날짜 시간에 X 분을 추가하는 데 정말로 고착되어 아무데도 가지 않는 것 같습니다.
내가 가진 날짜 시간 형식은 다음과 같습니다.
2011-11-17 05:05
: year-month-day hour:minute
추가 할 분은 0에서 59 사이의 숫자입니다.
분이 추가 된 입력 형식과 동일한 출력을 원합니다.
내 시도가 나를 어디로도 데려 가지 않는 것처럼 보이기 때문에 누군가가 작동하는 코드 예제를 줄 수 있습니까?
$minutes_to_add = 5;
$time = new DateTime('2011-11-17 05:05');
$time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$stamp = $time->format('Y-m-d H:i');
기간 동안 ISO 8601 표준 의 형태로 문자열 P{y}Y{m1}M{d}DT{h}H{m2}M{s}S
를 Where {*}
부품이 기간이 얼마나 오래 나타내는 숫자 값으로 대체됩니다.
예를 들어, P1Y2DT5S
1 년, 2 일, 5 초를 의미합니다.
위의 예 PT5M
에서 DateInterval
생성자 에게 (또는 5 분) 제공하고 있습니다.
PHP의 DateTime 클래스 에는 이해하기 쉬운 텍스트를 가져 오는 유용한 수정 메소드가 있습니다.
$dateTime = new DateTime('2011-11-17 05:05');
$dateTime->modify('+5 minutes');
또한 문자열 보간 또는 연결을 사용하여 매개 변수화 할 수 있습니다.
$dateTime = new DateTime('2011-11-17 05:05');
$minutesToAdd = 5;
$dateTime->modify("+{$minutesToAdd} minutes");
$newtimestamp = strtotime('2011-11-17 05:05 + 16 minute');
echo date('Y-m-d H:i:s', $newtimestamp);
결과는
2011-11-17 05:21:00
라이브 데모는 here
strtotime
아직 익숙하지 않다면 , php.net
그것이 큰 힘임을 발견하는 것이 좋습니다 :-)
네이티브 함수로 쉽게이 작업을 수행 할 수 있습니다.
strtotime('+59 minutes', strtotime('2011-11-17 05:05'));
Tim이 방금 게시 한 DateTime 클래스 메서드를 권장합니다.
나는 이것이 시간대를 다룰 때도 도움이 될 것이라고 생각했습니다. 내 수정 된 솔루션은 위의 정답 인 @Tim Cooper의 솔루션을 기반으로합니다.
$minutes_to_add = 10;
$time = new DateTime();
**$time->setTimezone(new DateTimeZone('America/Toronto'));**
$time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
$timestamp = $time->format("Y/m/d G:i:s");
굵은 선인 3 행이 추가되었습니다. 나는 이것이 일부 사람들에게도 도움이되기를 바랍니다.
약간의 늦은 답변이지만 내가 사용할 방법은 다음과 같습니다.
// Create a new \DateTime instance
$date = DateTime::createFromFormat('Y-m-d H:i:s', '2015-10-26 10:00:00');
// Modify the date
$date->modify('+5 minutes');
// Output
echo $date->format('Y-m-d H:i:s');
또는 PHP> = 5.4
echo (DateTime::createFromFormat('Y-m-d H:i:s', '2015-10-26 10:00:00'))->modify('+5 minutes')->format('Y-m-d H:i:s')
분을 포함하는 변수를 제공하려는 경우.
그렇다면 나는 이것이 이것을 달성하는 좋은 방법이라고 생각합니다.
$minutes = 10;
$maxAge = new DateTime('2011-11-17 05:05');
$maxAge->modify("+{$minutes} minutes");
사용하다 strtotime("+5 minute", $date);
예:
$date = "2017-06-16 08:40:00";
$date = strtotime($date);
$date = strtotime("+5 minute", $date);
echo date('Y-m-d H:i:s', $date);
Brad와 Nemoden이 위의 답변에서 언급했듯이 strtotime ()은 훌륭한 기능입니다. 개인적으로 표준 DateTime 개체가 많은 사용 사례에서 지나치게 복잡하다는 것을 알았습니다. 예를 들어 현재 시간에 5 분을 더하고 싶었습니다.
몇 가지 선택적 매개 변수가있는 문자열로 날짜를 반환하는 함수를 작성했습니다.
1.) time : String | 예 : "+5 분"(기본값 = 현재 시간)
2.) format : String | 예 : "Ymd H : i : s"(기본값 = "Ymd H : i : s O")
분명히 이것은 완전한 기능을 갖춘 방법이 아닙니다. 현재 날짜를 수정 / 포맷하는 빠르고 간단한 기능입니다.
function get_date($time=null, $format='Y-m-d H:i:s O')
{
if(empty($time))return date($format);
return date($format, strtotime($time));
}
// Example #1: Return current date in default format
$date = get_date();
// Example #2: Add 5 minutes to the current date
$date = get_date("+5 minutes");
// Example #3: Subtract 30 days from the current date & format as 'Y-m-d H:i:s'
$date = get_date("-30 days", "Y-m-d H:i:s");
One more example of a function to do this: (changing the time and interval formats however you like them according to this for function.date, and this for DateInterval):
(I've also written an alternate form of the below function.)
// Return adjusted time.
function addMinutesToTime( $dateTime, $plusMinutes ) {
$dateTime = DateTime::createFromFormat( 'Y-m-d H:i', $dateTime );
$dateTime->add( new DateInterval( 'PT' . ( (integer) $plusMinutes ) . 'M' ) );
$newTime = $dateTime->format( 'Y-m-d H:i' );
return $newTime;
}
$adjustedTime = addMinutesToTime( '2011-11-17 05:05', 59 );
echo '<h1>Adjusted Time: ' . $adjustedTime . '</h1>' . PHP_EOL . PHP_EOL;
one line mysql datetime format
$mysql_date_time = (new DateTime())->modify('+15 minutes')->format("Y-m-d H:i:s");
I don't know why the approach set as solution didn't work for me. So I'm posting here what worked for me in hope it can help anybody:
$startTime = date("Y-m-d H:i:s");
//display the starting time
echo '> '.$startTime . "<br>";
//adding 2 minutes
$convertedTime = date('Y-m-d H:i:s', strtotime('+2 minutes', strtotime($startTime)));
//display the converted time
echo '> '.$convertedTime;
Without using a variable:
$yourDate->modify("15 minutes");
echo $yourDate->format( "Y-m-d H:i");
With using a variable:
$interval= 15;
$yourDate->modify("+{$interval } minutes");
echo $yourDate->format( "Y-m-d H:i");
참고URL : https://stackoverflow.com/questions/8169139/adding-minutes-to-date-time-in-php
'Nice programing' 카테고리의 다른 글
UICollectionView는 상단 여백 추가 (0) | 2020.10.17 |
---|---|
스위치에서 케이스 문으로 배열 사용 (0) | 2020.10.17 |
종료를 호출 한 후 핸드 셰이크를 대기열에 넣을 수 없습니다. (0) | 2020.10.17 |
Android / Java-날짜 차이 (일) (0) | 2020.10.17 |
MVC 모델에는 true가 필요합니다. (0) | 2020.10.17 |