2010-04-02 2 views
0

Я извлечения даты из базы данных MySQL, которая показывает вверх, как это: «2010-03-09 09:11:30»Набор дано время 00:00:00 в PHP/MySQL

Как Я меняю дату на «2010-03-09 00:00:00»? Я использую PHP для выполнения запроса. Благодаря!

ответ

1
$time = '2010-03-09 09:11:30'; 
$timestamp = strtotime($time); 
$zeroedtimestamp = mktime(0, 0, 0, date('n', $timestamp), date('j', $timestamp), date('Y', $timestamp)); 
echo date('Y-m-d H:i:s', $zeroedtimestamp); 
+0

Просто протестировал его, и он работает! Спасибо огромное! – user305527

+0

Обратите внимание, что решение Coronatus является более коротким и быстрым и должно работать нормально, если все даты находятся в одном формате. Вышеприведенный код «делает это правильно». :) – deceze

+0

@deceze - Я бы «сделал это правильно», но я никогда не помню порядок параметров mktime(). : D –

1

Вы уверены, что это '2010-3-9 09:11:30', а не '2010-03-09 09:11:30'? Если вы действительно получаете первый из БД, быстро исправьте схему.

Во всяком случае ...

добрейшей из-уродливое решение:

$startOfDay = (substr('2010-3-9 09:11:30', 0, -8) . '00:00:00');

+0

Упс, извините, что это была опечатка. Я действительно устал. Как я могу сделать это для любой даты? – user305527

+1

Если временные метки соответствуют следующему формату, это должно работать для любой даты. –

+0

Спасибо, я обязательно сохраню это в ближайшем будущем. Я собираюсь с решением deceze прямо сейчас, потому что он работает лучше с циклом, который я делаю. – user305527

1
echo strtok(" ",$date).'00:00:00'; 

Почему бы не узнать строки операции немного? Я базовый опыт PHP, поскольку это препроцессор текста HTML. Большинство операций PHP - это синтаксический анализ строк. Это действительно стоит изучить некоторые строковые функции

Смежные вопросы