[php] 오늘 자정에 대한 타임 스탬프를 받고 있습니까?

오늘 자정에 PHP에서 타임 스탬프를 얻는 방법은 무엇입니까? 월요일 오후 5 시라고 말하고 이미 발생한 월요일 (오늘) 자정 (오전 12시)의 타임 스탬프를 원합니다.

감사합니다



답변

$timestamp = strtotime('today midnight');

PHP가 제공하는 기능을 살펴볼 수 있습니다 : http://php.net/datetime


답변

strtotime ()이 가지고있는 32 비트 제한을 넘어서는 날짜에 문제가 없기 때문에 새로운 PHP DateTime 객체를 사용해야한다고 생각합니다. 다음은 오늘 자정에 날짜를 얻는 방법의 예입니다.

$today = new DateTime();
$today->setTime(0,0);

또는 PHP 5.4 이상을 사용하는 경우 다음과 같이 할 수 있습니다.

$today = (new DateTime())->setTime(0,0);

그런 다음을 사용 echo $today->format('Y-m-d');하여 개체 출력 형식을 가져올 수 있습니다 .

PHP DateTime 객체


답변

오늘 자정. 쉬운.

$stamp = mktime(0, 0, 0);


답변

태양이 발 바로 아래를 지나가는 가장 최근의 천체 사건의 시간을 계산하고, 정오를 표시하는 지역 관습에 맞게 조정하고, 사람들이 직장에서 돌아온 후 충분한 일광이 남도록 잠재적으로 조정합니다. 기타 정치적 고려 사항.

벅찬 맞죠? 실제로 이것은 일반적인 문제이지만 완전한 대답은 위치에 따라 다릅니다.

$zone = new \DateTimeZone('America/New_York'); // Or your own definition of “here”
$todayStart = new \DateTime('today midnight', $zone);
$timestamp = $todayStart->getTimestamp();

“여기”에 대한 잠재적 정의는 https://secure.php.net/manual/en/timezones.php에 나열되어 있습니다.


답변

$today_at_midnight = strtotime(date("Ymd"));

당신이 원하는 것을 줄 것입니다.

설명

내가 한 일은 PHP의 날짜 함수를 사용하여 시간에 대한 참조없이 오늘 날짜를 가져온 다음 날짜와 시간을 epoch 타임 스탬프로 변환하는 ‘string to time’함수에 전달했습니다. 시간이 없으면 그날의 1 초를 가정합니다.

참조 : 날짜 기능 : http://php.net/manual/en/function.date.php

시간에 대한 문자열 : http://us2.php.net/manual/en/function.strtotime.php


답변

더 많은 객체 방식으로 :

$today = new \DateTimeImmutable('today');

예:

 echo (new \DateTimeImmutable('today'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 00:00:00

과:

echo (new \DateTimeImmutable())->format('Y-m-d H:i:s');
echo (new \DateTimeImmutable('now'))->format('Y-m-d H:i:s');
// will output: 2019-05-16 14:00:35


답변

$timestamp = strtotime('today midnight');

와 같다

$timestamp = strtotime('today');

서버에서 약간의 작업이 줄어 듭니다.