PHP로 1일 빼기
Drupal CMS에서 나오는 날짜 객체를 가져와서 하루를 빼고 두 날짜를 모두 출력하려고 합니다.여기 내가 가진 게 있어요
$date_raw = $messagenode->field_message_date[0]['value'];
print($date_raw);
//this gives me the following string: 2011-04-24T00:00:00
$date_object = date_create($date_raw);
$next_date_object = date_modify($date_object,'-1 day');
print('First Date ' . date_format($date_object,'Y-m-d'));
//this gives me the correctly formatted string '2011-04-24'
print('Next Date ' . date_format($next_date_object,'Y-m-d'));
//this gives me nothing. The output here is always blank
그래서 원래 날짜 오브젝트가 왜 잘 나오는지 이해가 안 되는데, 그 다음에 날짜 오브젝트를 하나 더 만들어서 하루를 빼서 수정하려고 하는데 그렇게 할 수 없을 것 같아요.출력은 항상 공백이 됩니다.
다음 작업을 수행할 수 있습니다.
print('Next Date ' . date('Y-m-d', strtotime('-1 day', strtotime($date_raw))));
date('Y-m-d',(strtotime ( '-1 day' , strtotime ( $date) ) ));
$date = new DateTime("2017-05-18"); // For today/now, don't pass an arg.
$date->modify("-1 day");
echo $date->format("Y-m-d H:i:s");
Date Time을 사용하면 날짜를 조작하는 동안 발생하는 두통의 양을 크게 줄일 수 있습니다.
원라이너 옵션은 다음과 같습니다.
echo date_create('2011-04-24')->modify('-1 days')->format('Y-m-d');
mktime 대체
문자열 방식의 사용, 계산, 추가 변수 작성을 피하고 싶은 경우 시간은 다음과 같은 방법으로 감산 및 음수 값을 지원합니다.
// Today's date
echo date('Y-m-d'); // 2016-03-22
// Yesterday's date
echo date('Y-m-d', mktime(0, 0, 0, date("m"), date("d")-1, date("Y"))); // 2016-03-21
// 42 days ago
echo date('Y-m-d', mktime(0, 0, 0, date("m"), date("d")-42, date("Y"))); // 2016-02-09
//Using a previous date object
$date_object = new DateTime('2011-04-24');
echo date('Y-m-d',
mktime(0, 0, 0,
$date_object->format("m"),
$date_object->format("d")-1,
$date_object->format("Y")
)
); // 2011-04-23
객체 지향 버전
$dateObject = new DateTime( $date_raw );
print('Next Date ' . $dateObject->sub( new DateInterval('P1D') )->format('Y-m-d');
현재 코드가 작동하지 않는 이유는 알 수 없지만 날짜 개체가 특별히 필요하지 않은 경우 다음과 같이 작동합니다.
$first_date = strtotime($date_raw);
$second_date = strtotime('-1 day', $first_date);
print 'First Date ' . date('Y-m-d', $first_date);
print 'Next Date ' . date('Y-m-d', $second_date);
Answear는 Php 수동 strtotime 함수 코멘트로부터 취득했습니다.
echo date( "Y-m-d", strtotime( "2009-01-31 -1 day"));
또는
$date = "2009-01-31";
echo date( "Y-m-d", strtotime( $date . "-1 day"));
추가할 수 있습니다.strtotime()
에date()
요일 또는 월의 파라미터 번호를 지정합니다.요일 예date("Y-m-d", strtotime("-1 day"));
일주일 동안date("Y-m-d", strtotime("-1 week"));
한 달 동안date("Y-m-d", strtotime("-1 months"));
이것은 어떨까요?먼저 Unix 타임스탬프로 변환하고 60*60*24(정확히 1초)를 뺀 후 날짜를 가져옵니다.
$newDate = strtotime($date_raw) - 60*60*24;
echo date('Y-m-d',$newDate);
주의: apokryfos가 지적한 바와 같이, 이는 25시간 또는 23시간이 걸리는 날이 있는 여름 시간 변화에 의해 기술적으로 사라집니다.
asp.net c#에서 날짜에 1년을 더하고 1일을 빼는 방법
Convert.ToDateTime(txtDate.Value.Trim()).AddYears(1).AddDays(-1);
언급URL : https://stackoverflow.com/questions/7651263/subtract-1-day-with-php
'programing' 카테고리의 다른 글
MySQL의 참/거짓 vs 0/1 (0) | 2022.11.24 |
---|---|
@InjectMocks 클래스의 메서드를 조롱하려면 어떻게 해야 합니까? (0) | 2022.11.24 |
다차원 배열의 하위 배열에 있는 특정 키에 특정 값이 있는지 확인합니다. (0) | 2022.11.24 |
com.jcraft.jsch를 클릭합니다.JSch Exception:알 수 없는 호스트 키 (0) | 2022.11.24 |
MariaDB Connector/J를 사용하여 MySQL에 SSL 연결을 설정하는 방법 (0) | 2022.11.06 |