2011-11-22 3 views
1

나는 다음과 같은 문자열을 사용하여 데이터베이스에서 날짜와 현재 날짜를 비교하기 위해 노력하고 있어요 : (PHP를 확인

$today = new DateTime("now"); 
$todayString = $today->format('Y-m-d H:i:s'); 

if($todayString >= $rows["PrioritizationDueDate"]) 
{...} 

$todayString이 7시간 이전에 나에게 시간을주고 유지 즉, 지금 그것의 오후 11시 3 분, 나에게주는 16:04).

더 많이,이 방법을 비교하는 것이 더 좋습니까? 아니면 datetime 개체를 사용하여 비교해야합니까?

+0

는 쉽게 타임 스탬프를보십시오 비교하려면 –

+0

GMT에서 동쪽으로 7 시간 거리에 있습니까? – Thilo

답변

0

생성자에서 올바른 시간대를 DateTime으로 설정하십시오.

$today = new DateTime("now", new DateTimeZone('TimezoneString')); 

여기서 TimezoneStringvalid timezone string입니다.

편집 : DateTime 개체를 사용하는 예를 더 보려면 을 DateTime::createFromFormat과 함께 사용하십시오. 하나는 기능의 한 strtotime을 (사용) 또는 직접 차를 얻을 수 있습니다

date_default_timezone_set('UTC'); 

그런 다음이 기능을 사용

$rows["PrioritizationDueDate"] = '2011-11-20 10:30:00'; 

$today = new DateTime("now", new DateTimeZone('America/New_York')); 
$row_date = DateTime::createFromFormat('Y-m-d H:i:s', $rows["PrioritizationDueDate"], new DateTimeZone('America/New_York')); 

if($row_date->diff($today)->format('%a') > 1) 
{ 
    echo 'The row timestamp is more than one day in the past from now.'; 
} 

Demo

1

$ todayString는 설정에 내가 믿는 날짜 시간 객체의 시간대를

7시간 이전에 나에게 시간을주고 유지합니다.

는 더 나은 내가 그렇게 의심이 방법

를 비교하는 것입니다.
일반적인 방법은 쿼리에서 비교하는 것입니다. SQL을 사용하여 모든 날짜 계산을 수행하고 일치하는 행만 반환합니다.

0

첫 번째 설정된 시간대 ...

관련 문제