user187580
user187580

Reputation: 2315

Is there any PHP function to format time (not date)?

I have a mysql table field set as time type which stores data in the HH:mm:ss format. So when I list the data, it prints as, for example, 16:30:00. But I want to display hh:mm part only (not the seconds).

In case of datetime types, I can do date('H:i', '2010-03-16 16:30:00'). I mean I can retrieve any part. I wonder if there is any similar way like this for time only fields??

Please see, I can manipulate the time string to get rid of seconds in time part using str_replace, explode etc, I just wonder if there is any standard function there which I am not aware of.

Upvotes: 4

Views: 11495

Answers (3)

Greg K
Greg K

Reputation: 11120

Another approach is:

SELECT UNIX_TIMESTAMP(time_field) AS tstamp FROM table;

Then you can use PHP's date() function to format it.

$time = date('H:i', $tstamp);

Upvotes: 1

Gordon
Gordon

Reputation: 316969

If you want to do this with PHP, you'd have to get a timestamp from the time first, e.g.

echo date('H:i', strtotime('16:30:00'));

will output 16:30. Strtotime will assume the time is for the current date then.

Upvotes: 13

VolkerK
VolkerK

Reputation: 96159

You can let MySQL return the data in the format you want using Date_Format()

edit: as fireeyedboy pointed out there's also a TIME_FORMAT() function.

Upvotes: 3

Related Questions