@Pogran

Почему возращает разную метку?

У меня есть вот такой код
var_dump($model->published_at);
       $model->published_at = date('Y-m-d h:i', $model->published_at);
	var_dump($model->published_at);
	$time = strtotime($model->published_at);
	var_dump($time);
	$time = date('Y-m-d h:i', $time);
	var_dump($time);


На выходе на удивление я получаю вот что.
int(1486924655) 
string(16) "2017-02-12 06:37" 
int(1486881420) 
string(16) "2017-02-12 06:37"


Почему для одной и той же даты разная метка получается при использовании данных функций?
  • Вопрос задан
  • 97 просмотров
Пригласить эксперта
Ответы на вопрос 2
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
timestamp не меняется по часовым поясам.
всё остальное что работает с датами использует часовые пояса.

у вас все видимо приводится к серверному(из конфига) времени в итоге т.к. используете date
Ответ написан
Комментировать
ewgenio
@ewgenio
Всё по чуть чуть
Как минимум потому что вы не указываете секунды в
date('Y-m-d h:i', $model->published_at);
UPD:
timestamp хранит время с точностью до секунды
Например:
1486924655 - 2017-02-12 06:37:35

После конвертации в date() без указания секунд вы получили
2017-02-12 06:37:00

и соотвественно timestamp:
1486881420


Используйте для проверки:
date('Y-m-d h:i:s', $model->published_at);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы