PHP strtime()不';好像不行?我能';我看不出有什么不对
我目前正试图将一个数据库从一个旧系统转移到一个新系统,我遇到了一个小问题 我在以下位置设置了一个db行: 2007-04-24 00:23:59 (yyyy-mm-dd hh:mm:ss) 而且我似乎无法通过strtime()让它工作 以下是我所拥有的:PHP strtime()不';好像不行?我能';我看不出有什么不对,php,mysql,strptime,Php,Mysql,Strptime,我目前正试图将一个数据库从一个旧系统转移到一个新系统,我遇到了一个小问题 我在以下位置设置了一个db行: 2007-04-24 00:23:59 (yyyy-mm-dd hh:mm:ss) 而且我似乎无法通过strtime()让它工作 以下是我所拥有的: $format = '%Y-%m-%d %H:%i:%s'; $ct = strptime($row['time'], $format ); //$row['time'] == 2007-01-11 00:47:27 这不会返回任何结果 有人
$format = '%Y-%m-%d %H:%i:%s';
$ct = strptime($row['time'], $format );
//$row['time'] == 2007-01-11 00:47:27
这不会返回任何结果
有人能看出这有什么不对吗
谢谢。有关正确的格式,请参阅文档
你的目标应该是:
$format = '%Y-%m-%d %T';
格式应该有所不同:
$format = '%Y-%m-%d %H:%M:%S'; // or just '%F %T'
下面是strftime的相应部分:
从手册
这就是我通常处理日期格式的方式
$somedate = strtotime($dateValue);
$formatted_date = date('Y-m-d H:i:s', $somedate);
strtime()
在Windows中不可用
注意:此功能不在Windows平台上实现
来源:我看不出您在哪里输出它日期必须是字符串。
$row['time']
中有什么内容?此功能未在Windows上实现,因此如果您在Windows平台上,它将无法工作。同样来自PHP手册的注释:在内部,此函数调用系统的C库提供的strptime()函数。此函数在不同的操作系统中表现出明显不同的行为。PHP 5.3.0及更高版本建议使用不存在这些问题的格式()中的日期解析。'%Y-%m-%d%H:%m:%S'
,您混淆了date()
&strftime()
字符。我在下面添加了一条注释,说明$row['time']是什么://$row['time']==2007-01-11 00:47:27不应该是这样的吗“%Y/%m/%d%H:%i:%s”
@Scottstrftime
和date
格式不同。我没有意识到strftime和date在当时有不同的代码,谢谢。然而,它仍然不起作用。不,最终让它与。。。显然,我只想知道Date和strTime是不同的格式:P谢谢,甚至更短的“%F%T”对你来说很好,但问题是关于其他的东西,如果我想发表评论的话。谢谢你的帮助,Michael。如果你甚至不能改变你需要的日期格式,编程就不适合你了。当然不同了,很明显,你应该根据需要改变它。我知道我应该改变它,我只是说,当给出答案时,直接代表问题的答案可能会更清楚。我已经读过手册了,但我肯定错过了格式,以为它和日期格式是一样的
<?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] =>
)
$somedate = strtotime($dateValue);
$formatted_date = date('Y-m-d H:i:s', $somedate);