YYYY-DD-MM 형식의 PHP 문자열과 MySQL의 타임스탬프가 있는 경우 둘 사이를 변환할 수 있는 좋은 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/20598

문제

날짜 문자열과 MySQL 타임스탬프를 비교하고 싶습니다.그러나 쉬운 전환은 보이지 않습니다.내가 명백한 것을 간과하고 있습니까?

도움이 되었습니까?

해결책

타임스탬프에서 형식으로 변환:

date('Y-m-d', $timestamp);

형식화에서 타임스탬프로 변환:

mktime(0, 0, 0, $month, $day, $year, $is_dst);

보다 날짜 그리고 mktime 추가 문서를 위해.

저장하는 경우 형식화된 날짜로 표시하기 위해 MySQL DATE 형식을 사용할지 여부는 사용자에게 달려 있습니다.UNIX 타임스탬프로 저장하기 위한 정수로;또는 숫자 타임스탬프를 읽을 수 있는 형식으로 변환하는 MySQL의 TIMESTAMP 형식을 사용할 수 있습니다. MySQL 문서 확인 TIMESTAMP 정보용.

다른 팁

사용하지 않아도 됩니다. strtotime() 또는 getdate() ~에 PHP MySQL을 사용하여 UNIX_TIMESTAMP() 기능.

SELECT UNIX_TIMESTAMP(timestamp) FROM sometable

결과 데이터는 표준 정수 Unix 타임스탬프가 되므로 다음과 직접 비교할 수 있습니다. time().

프로세스를 단순화하기 위해 다음과 같은 작은 함수를 작성했습니다.

/**
 * Convert MySQL datetime to PHP time
 */
function convert_datetime($datetime) {
  //example: 2008-02-07 12:19:32
  $values = split(" ", $datetime);

  $dates = split("-", $values[0]);
  $times = split(":", $values[1]);

  $newdate = mktime($times[0], $times[1], $times[2], $dates[1], $dates[2], $dates[0]);

  return $newdate;
}

이게 도움이 되길 바란다

strtotime() 그리고 날짜 가져오기() 문자열과 타임스탬프에서 날짜를 가져오는 데 사용할 수 있는 두 가지 함수입니다.하지만 MySQL과 PHP 타임스탬프 간에 변환하는 표준 라이브러리 함수는 없습니다.

PHP를 사용하세요 날짜 기능.다음을 사용하여 쿼리에서 mysql 타임스탬프를 Unix 타임스탬프로 변환해야 할 수도 있습니다. UNIX_TIMESTAMP mysql의 함수.

다음 형식의 날짜 문자열:

YYYY-MM-DD

그와 관련된 시간이 없습니다.MySQL 타임스탬프의 형식은 다음과 같습니다.

YYYY-MM-DD HH:mm:ss

둘을 비교하려면 날짜 문자열에 시간(예: 자정)을 추가해야 합니다.

$datetime = '2008-08-21'.' 00:00:00';

그런 다음 함수를 사용하여 둘 사이의 epoc 시간을 비교합니다.

if (strtotime($datetime) > strtotime($timestamp)) {
    echo 'Datetime later';
} else {
    echo 'Timestamp equal or greater';
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top