Обсуждение: Datetime in humane format
So, I followed the advice in the archives and used the datetime type. Now, I've got entries like 'Sun Sep 06 00:06:57 1998 EDT' in my table. So, how do I turn that into something that a normal human can read? "Sep 06 1998 12:06 am" would be nice... Or, how do I turn that back into seconds since epoch? I'm using PHP which has a nice date function that I think I can coerce into giving me what I want... unless it also thinks that humans understand 00:06:57 as just after midnight... -- -- -- "TANSTAAFL" Rich lynch@lscorp.com
At 6:27 +0200 on 6/9/98, Richard Lynch wrote: > So, I followed the advice in the archives and used the datetime type. > > Now, I've got entries like 'Sun Sep 06 00:06:57 1998 EDT' in my table. > > So, how do I turn that into something that a normal human can read? > > "Sep 06 1998 12:06 am" would be nice... > > Or, how do I turn that back into seconds since epoch? I'm using PHP which > has a nice date function that I think I can coerce into giving me what I > want... unless it also thinks that humans understand 00:06:57 as just after > midnight... That depends on the country... To me, 24-hour clocks are as natural as hailing a cab. Seconds since epoch - very easy: the function date_part will do that for you. Read the manpage of pgbuiltin. Perhaps its worthwhile to delve into the PHP documentation. Perhaps you can transfer the result you got from a query on a date field directly to some PHP date type which allows formatting. At least in Java that's how it's done - so why not in others. Herouth -- Herouth Maoz, Internet developer. Open University of Israel - Telem project http://telem.openu.ac.il/~herutma
On Sat, 5 Sep 1998, Richard Lynch wrote:
> Date: Sat, 5 Sep 1998 23:27:08 -0500
> From: Richard Lynch <lynch@lscorp.com>
> To: pgsql-sql@postgreSQL.org
> Subject: [SQL] Datetime in humane format
>
> So, I followed the advice in the archives and used the datetime type.
>
> Now, I've got entries like 'Sun Sep 06 00:06:57 1998 EDT' in my table.
>
> So, how do I turn that into something that a normal human can read?
>
> "Sep 06 1998 12:06 am" would be nice...
I've written a function to do just that using the datetime type and PHP.
Here it is:
function article_date_format($date) {
$main = explode(" ", $date);
$mdy = explode("/", $main[0]);
$hms = explode(":", $main[1]);
$sec = explode("\.", $hms[2]);
$timestamp = mktime($hms[0], $hms[1], $sec[0], $mdy[0], $mdy[1],
$mdy[2]);
$new_date = date("l, F d, Y", $timestamp);
$more_date = date("h:i A", $timestamp);
if (substr($more_date, 0, 1) == "0"):
$more_date = substr($more_date, 1, strlen($more_date));
endif;
$new_date .= "  $more_date";
return $new_date;
}
--------------
Before I execute that function, I send this command to Postgres (via PHP):
SET DateStyle to 'SQL'
to ensure that my function works properly on the dates I'm fetching.
I'm not sure my solution is the most efficient one, but I know it works
for me. Hope it helps...
eric
>
> Or, how do I turn that back into seconds since epoch? I'm using PHP which
> has a nice date function that I think I can coerce into giving me what I
> want... unless it also thinks that humans understand 00:06:57 as just after
> midnight...
>
> --
> --
> -- "TANSTAAFL" Rich lynch@lscorp.com
>
>
>
>
_______________________
Eric McKeown
ericm@palaver.net
http://www.palaver.net