2014-11-06 1 views
2

이 코드를 성공적으로 사용하고 있지만 변수를 문자열에서 숫자로 변환 할 필요가없는 곳에서이 코드를 실행하는 방법이 있습니다. ?mysql을 사용하여 date()를 사용하기 위해 strtotime()을 사용해야하는 이유

mysql 타임 스탬프 데이터 유형이 문자열이지만 php 타임 스탬프가 숫자이기 때문에 내가 효율적으로하고 있는지 혼란스럽고 궁금합니다. mysql 타임 스탬프에 대한 날짜 형식 변환이 있어야합니까?

date(DATE_ATOM, strtotime($program->start_time)) 

date 함수는 timestamp long 데이터 형식을 사용하지만 mysql은 datetime 문자열 형식으로 타임 스탬프를 저장합니다. 내가 한 번 변환 할 때이 작업을 수행 할 수있는 또 다른 방법이 있습니까?

+1

예, 타임 스탬프로 날짜를 저장합니다. –

+0

타임 스탬프로 저장했습니다. 타임 스탬프 형식은 mysql의 문자열이 아닌가? 하지만 PHP date()는 타임 스탬프가 숫자가 될 것으로 예상합니다. – Phil

+0

타임 스탬프로 저장하고 타임 스탬프로 꺼낸 다음 타임 스탬프에서 타임 스탬프를 만들려고하면 strtotime 함수가 false를 반환하고 date() 함수가 작동하지 않습니다. –

답변

0

왜 코드에서 날짜를 변경해야하는지 모르겠습니다.

Laravel 기본 모델에서 날짜는 Carbon 개체로 작동합니다. 해당 필드가 데이터베이스에 저장되면 데이터베이스 날짜 형식으로 변경됩니다. 이는 날짜 필드가 기본 모델에서 getter/setter를 소유하기 때문입니다.

사용자 정의 날짜 필드 형식을 변경할 필요가 없습니다. $dates 모델 특성에서만 선언하여 데이터베이스에 저장할 때 해당 필드를 변경할 수 있습니다.

예를 들어이 사용자 모델 클래스에서 속성 start_time은 저장 될 때 Carbon 형식에서 MySQL 형식으로 변형됩니다.

Class User extends Eloquent 
{ 
    protected $dates = ['start_time']; 
} 

당신이 여기 http://laravel.com/docs/4.2/eloquent#date-mutators

에 대한 자세한 내용을보실 수 있습니다 나는 그것을 더 잘 이해하는 데 도움이 될 것이라고 기대합니다.

관련 문제