2011-01-06 47 views

Trả lời

38

Trong MySQL, chỉ cần MONTH(date), , v.v. Trong PHP, bạn có thể làm date('g', strtotime($datefromsql)) để nhận ví dụ: giờ định dạng 12 giờ kể từ ngày.

Vì vậy, trong ví dụ trên, bạn có thể hoặc là làm

SELECT YEAR(date), 
     MONTH(date), 
     DAYOFMONTH(date), 
     HOUR(date), 
     MINUTE(date), 
     SECOND(date) 

hoặc trong PHP,

$time = strtotime($datefromsql); 
echo date('Y', $time); 
echo date('m', $time); 
echo date('d', $time); 
echo date('h', $time); 
echo date('i', $time); 
echo date('s', $time); 
8

Kiểm tra liên kết này http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

ADDDATE() Add time values (intervals) to a date value 

ADDTIME() Add time 

CONVERT_TZ() Convert from one timezone to another 

CURDATE() Return the current date 

CURRENT_DATE(), CURRENT_DATE Synonyms for CURDATE() 

CURRENT_TIME(), CURRENT_TIME Synonyms for CURTIME() 

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP Synonyms for NOW() 

CURTIME() Return the current time 

DATE_ADD() Add time values (intervals) to a date value 

DATE_FORMAT() Format date as specified 

DATE_SUB() Subtract a time value (interval) from a date 

DATE() Extract the date part of a date or datetime expression 

DATEDIFF() Subtract two dates 

DAY() Synonym for DAYOFMONTH() 

DAYNAME() Return the name of the weekday 

DAYOFMONTH() Return the day of the month (0-31) 

DAYOFWEEK()  Return the weekday index of the argument 

DAYOFYEAR()  Return the day of the year (1-366) 

EXTRACT() Extract part of a date 

FROM_DAYS()  Convert a day number to a date 

FROM_UNIXTIME()  Format UNIX timestamp as a date 

GET_FORMAT() Return a date format string 

HOUR() Extract the hour 

LAST_DAY Return the last day of the month for the argument 

LOCALTIME(), LOCALTIME Synonym for NOW() 

LOCALTIMESTAMP, LOCALTIMESTAMP() Synonym for NOW() 

MAKEDATE() Create a date from the year and day of year 

MAKETIME MAKETIME() 

MICROSECOND() Return the microseconds from argument 

MINUTE() Return the minute from the argument 

MONTH()  Return the month from the date passed 

MONTHNAME()  Return the name of the month 

NOW() Return the current date and time 

PERIOD_ADD() Add a period to a year-month 

PERIOD_DIFF() Return the number of months between periods 

QUARTER() Return the quarter from a date argument 

SEC_TO_TIME() Converts seconds to 'HH:MM:SS' format 

SECOND() Return the second (0-59) 

STR_TO_DATE() Convert a string to a date 

SUBDATE() A synonym for DATE_SUB() when invoked with three arguments 

SUBTIME() Subtract times 

SYSDATE() Return the time at which the function executes 

TIME_FORMAT() Format as time 

TIME_TO_SEC() Return the argument converted to seconds 

TIME() Extract the time portion of the expression passed 

TIMEDIFF() Subtract time 

TIMESTAMP()  With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the arguments 

TIMESTAMPADD() Add an interval to a datetime expression 

TIMESTAMPDIFF()  Subtract an interval from a datetime expression 

TO_DAYS() Return the date argument converted to days 

TO_SECONDS() Return the date or datetime argument converted to seconds since Year 0 

UNIX_TIMESTAMP() Return a UNIX timestamp 

UTC_DATE() Return the current UTC date 

UTC_TIME() Return the current UTC time 

UTC_TIMESTAMP()  Return the current UTC date and time 

WEEK() Return the week number 

WEEKDAY() Return the weekday index 

WEEKOFYEAR() Return the calendar week of the date (0-53) 

YEAR() Return the year 

YEARWEEK() Return the year and week 
2

Cách tốt nhất để sử dụng DateTime lớp

$my_sql_date = '2011-01-06 09:39:11'; 
$date_time = new DateTime($my_sql_date); 
echo $date_time->format('Y').PHP_EOL; 
echo $date_time->format('m').PHP_EOL; 
echo $date_time->format('d').PHP_EOL; 
echo $date_time->format('h').PHP_EOL; 
echo $date_time->format('i').PHP_EOL; 
echo $date_time->format('s'); 
0
$dt = Carbon::now(); 
$dt->timestamp = strtotime($mysqlVarDatetime); //like '2017-01-31 07:19:11' string cad 

nó có thể được gây ra:

var_dump($dt->year);           // int(2017) 
var_dump($dt->month);          // int(1) 
var_dump($dt->day);           // int(31) 
var_dump($dt->hour);           // int(7) 
var_dump($dt->minute);          // int(19) 
var_dump($dt->second);          // int(11) 

Resource để biết thêm thông tin Carbon thư viện: http://carbon.nesbot.com/docs/#api-getters

0

Cũ chủ đề, nhưng tôi không thể cưỡng lại đăng rõ ràng 'brute-force 'solution:

Nếu định dạng chuỗi ngày giờ SQL của bạn luôn được đưa ra như trong ví dụ của bạn và bạn không muốn sử dụng các hàm/cl ngày giờ lừa, bạn có thể làm như sau:

$mysql_datetime = "2011-01-06 09:39:114525"; 
list($date, $time) = explode(' ', $mysql_datetime); 
list($year, $month, $day) = explode('-', $date); 
list($hr, $min, $sec) = explode(':', $time); 
$sec = (int)substr($sec, 0, 2); 

Giá trị bạn muốn hiện có sẵn trong các biến sau: $year, $month, $day, $hr, $min, $sec.

Các vấn đề liên quan