Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本中的日期时间_Php_Mysql_Datetime - Fatal编程技术网

PHP脚本中的日期时间

PHP脚本中的日期时间,php,mysql,datetime,Php,Mysql,Datetime,我使用PHP脚本获取日期和时间的banlist,但我有一个错误,不知道如何将其转换为“正常”时间 它只列出了我的日期:1970年1月1日嗯00:00 Uhr 此脚本的脚本部分: //Convert Epoch Time to Standard format $datetime = date("d.m.Y \\u\\m H:i \\U\\h\\r", $row['expires']); echo "<td>$datetime</td>"; //将历元时间转换为标准格式 $

我使用PHP脚本获取日期和时间的banlist,但我有一个错误,不知道如何将其转换为“正常”时间

它只列出了我的日期:1970年1月1日嗯00:00 Uhr

此脚本的脚本部分:

//Convert Epoch Time to Standard format
$datetime = date("d.m.Y \\u\\m H:i \\U\\h\\r", $row['expires']);
echo "<td>$datetime</td>";
//将历元时间转换为标准格式
$datetime=date(“d.m.Y\\u\\m H:i\\u\\H\\r,$row['expires']);
回显“$datetime”;
这是mysql数据库中的条目:

不知道这是否有用

有人有办法解决这个问题吗

链接:

  • 该行来自一个插件。例如:$row['name'],$row['banner'],$row['reason']这都来自插件
它只列出了日期:01.01.1970 um 00:00 Uhr

这仅仅意味着您对
$row['expires']
的想法不正确。这不是UNIX时间戳值,正在生成无效日期。这意味着该值本质上计算为0,即UNIX时间的1970年1月1日

date()?或者它是一个日期时间字段

试试这个

echo date("d.m.Y \\u\\m H:i \\U\\h\\r", "2014-10-12");   //invalid

echo date("d.m.Y \\u\\m H:i \\U\\h\\r", time());  //valid: current unix timestamp

首先将日期转换为UNIX时间戳。试试-

$datetime = date("d.m.Y \\u\\m H:i \\U\\h\\r", strtotime($row['expires']));
echo "<td>$datetime</td>";
$datetime=date(“d.m.Y\\u\\m H:i\\u\\H\\r”,strotime($row['expires']);
回显“$datetime”;
基于(您在删除的答案中给出的)您有毫秒。将毫秒除以1000得到秒

可能是这样的:

$datetime=date('d.m.Y\u\m H:i\u\H\r',$row['expires']/1000);
但是,如果您使用的是1970年,这意味着您使用的是32位计算机,并且获取的INT超出范围。在这种情况下,您可以使用字符串函数
substr()
剪切最后3个数字:

$datetime=date('d.m.Y\u\m H:i\u\H\r',substr($row['expires'],0,-3));

您的
$row['expires']
包含哪些内容
var_dump()
it并查看它是否为时间戳。您确定该行在数据库中包含实际日期吗?我认为它可能只是1970年的零。这意味着
$row['expires']
是一个本质上是
0
的值,UNIX时代的开始,1970年1月1日。这一行来自数据库“Default date”是一个奇怪的说法。这意味着该值的计算结果本质上为
0
,即UNIX时间中的1970年1月1日。如果
$row['expires']
包含任何日期字符串,则
strottime($row['expires'])
就可以了。我在家时会试试这个,如果我在家,我也会试试这个:好的,我试试,所以现在时间是正确的,但日期是错误的。。。?!?!非常困惑。。现在是2014年12月11日,因为它是2014年12月8日oO sry,但不知道var_dump($row['expires'))的确切含义是什么?时间是由时间发送到mysql数据库的插口插件插入的,这是什么?字符串(13)“1418279542453”此时间戳表示
2014-12-11T06:32:22Z
。如果这是无效的,那么您的数据库中存储了错误的时间戳。