PHP strptime()似乎不起作用?我看不出有什么不对劲

时间:2014-04-03 10:57:54

标签: php mysql strptime

我目前正在尝试将数据库从旧系统转移到新系统,我遇到了一个小问题。

我有一个格式为:

的数据库行

2007-04-24 00:23:59 (yyyy-mm-dd hh:mm:ss)

我似乎无法通过strptime()

开始工作

这就是我所拥有的:

$format = '%Y-%m-%d %H:%i:%s';
$ct = strptime($row['time'], $format );
//$row['time'] == 2007-01-11 00:47:27

这不会返回任何内容。

有人可以看到有什么问题吗?

感谢。

5 个答案:

答案 0 :(得分:1)

有关正确的格式,请参阅 strftime() 文档。

你的论坛应该是:

$format = '%Y-%m-%d %T';

答案 1 :(得分:1)

格式应该有点不同:

$format = '%Y-%m-%d %H:%M:%S'; // or just '%F %T'

以下是strftime format documentation的相应部分:

%M  Two digit representation of the minute  [00 through 59]
%S  Two digit representation of the second  [00 through 59]
%T  Same as "%H:%M:%S"
%F  Same as "%Y-%m-%d" (commonly used in database datestamps)

答案 2 :(得分:0)

来自手册http://www.php.net/manual/en/function.strptime.php

<?php
$format = '%d/%m/%Y %H:%M:%S';
$strf = strftime($format);

echo "$strf\n";

print_r(strptime($strf, $format));
?>

结果

03/10/2004 15:54:19

Array
(
    [tm_sec] => 19
    [tm_min] => 54
    [tm_hour] => 15
    [tm_mday] => 3
    [tm_mon] => 9
    [tm_year] => 104
    [tm_wday] => 0
    [tm_yday] => 276
    [unparsed] =>
)

答案 3 :(得分:0)

strptime()在Windows中不可用。

  

注意:此功能未在Windows平台上实现。

来源:http://php.net/manual/en/function.strptime.php

答案 4 :(得分:-1)

这就是我通常处理日期格式的方式。

$somedate = strtotime($dateValue);
$formatted_date = date('Y-m-d H:i:s', $somedate);