【发布时间】:2012-03-20 06:32:49
【问题描述】:
当我直接回显从 PHP 数据库中检索到的时间戳值时,我在屏幕上看到了这一点。
2012-04-01 12:02:00
在 PHP 中解析这个时间戳字符串的有效方法是什么?我应该使用正则表达式还是爆炸来将此时间戳转换为两个字符串并解析每个字符串(日期和时间)?
有没有更精简和标准的方法来做到这一点?
最后,我想将此时间戳表示为:12:02 on April 1, 2012。
【问题讨论】:
当我直接回显从 PHP 数据库中检索到的时间戳值时,我在屏幕上看到了这一点。
2012-04-01 12:02:00
在 PHP 中解析这个时间戳字符串的有效方法是什么?我应该使用正则表达式还是爆炸来将此时间戳转换为两个字符串并解析每个字符串(日期和时间)?
有没有更精简和标准的方法来做到这一点?
最后,我想将此时间戳表示为:12:02 on April 1, 2012。
【问题讨论】:
date('H:i on F d, Y',strtotime('2012-04-01 12:02:00'))
这里有更多关于日期模式的信息:http://php.net/manual/en/function.date.php
【讨论】:
查看date() 和strtotime() 函数。
在你的例子中是
date("H:i on F d, Y",strtotime("2012-04-01 12:02:00"));
如果您使用的 PHP 版本高于 5.3.0,您也可以使用 date_parse_from_format()。在这种情况下:
$parsed = date_parse_from_format("Y-m-d H:i:s","2012-04-01 12:02:00");
$new = mktime(
$parsed['hour'],
$parsed['minute'],
$parsed['second'],
$parsed['month'],
$parsed['day'],
$parsed['year']
);
date("H:i on F d, Y", $new);
【讨论】:
date() expects parameter 2 to be long, array given
试试这个。
$result = mysql_query("SELECT date FROM times;");
while ( $row = mysql_fetch_array($result) ) {
echo date("g:i a F j, Y ", strtotime($row["date"])) . "<br />";
}
【讨论】:
单行是date_create_from_format('H:i on F d, Y', $timestamp_value)
在此处了解更多信息:http://www.php.net/manual/en/datetime.createfromformat.php
【讨论】: