2011-02-10 2 views
0

я хранится время даты в MySQL из учебника, как: 2011-02-10 01:21:39даты в PHP хранится

Из этого, как можно извлечь отдельные элементы с помощью PHP? Скажите, что я просто хочу года? или даже просто полная дата, если это невозможно?

+1

'выберите год (дата) от' за год и есть функция MySQL, чтобы принести все отдельно –

+0

это было покрыто снова и снова, почти точно. – Andy

+0

@nalroff Если вы не собираетесь ссылаться на дублированный вопрос, то не скулите - это не помогает. :-) –

ответ

4

См. Функцию strtotime(). Это преобразует вашу строку даты в метку времени. Затем используйте date() вытащить необходимые детали:

$time = strtotime('a string containing some description of the time and date'); 
$year = date('Y', $time); 
+0

Я использовал это. благодаря – David19801

1

Используйте php's date(). Вы можете отформатировать, как вам нужно. date()

+1

Это делает обратное тому, что спросил Дэвид. – Tim

+0

Не совсем, просто не обязательно полный ответ. Требуется 'strtotime()', как указывает ответ Алекса. – kmfk

4

Почему бы не выбрать элементы из MySQL напрямую?

select year(datefield), month(datefield), day(datefield) from yourtable 

вернется

+---------------+ 
| 2011 | 2 | 10 | 
+---------------+ 

конечно, если вы хотите сделать datemath в PHP, было бы лучше, чтобы выбрать дату как UNIX_TIMESTAMP из MySQL, который возвращает время в секундах от Jan 1/1970, который вы можете напрямую подавать в систему дат PHP;

SELECT UNIX_TIMESTAMP(datefield) ... 

$timestamp = mysql_fetch(...) 

$date = date($timestamp); 
+0

Его хорошо делать на уровне MySQL ... +1 – Ish

1
<?php $original = $row['time']; 
$date = date_create($original); 
echo date_format($date, 'Y');?> 

просто заменить $ оригинал с вашей собственной переменной. определенно проверьте php date()http://php.net/manual/en/function.date.php

2

Вы имеете в виду date('Y', strtotime('2011-02-10 01:21:39'));?

Go с @Marc's Solution если вы пробегаем по MySQL результирующего набора

2

Вы можете использовать extract функцию MySQL из вашего запроса, как это:

SELECT EXTRACT(YEAR FROM yourDatefield) AS year, 
     EXTRACT(MONTH FROM yourDatefield) AS month, 
     EXTRACT(DAY FROM yourDatefield) AS day, 
     EXTRACT(HOUR FROM yourDatefield) AS hour, 
     EXTRACT(MINUTE FROM yourDatefield) AS minute, 
     EXTRACT(SECOND FROM yourDatefield) AS second 
FROM 
     yourTable 

Проверьте свою функцию extract для получения дополнительной информации.

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