<?php
echo strtotime("2014-01-01 00:00:01")."<hr>";
// output is 1388516401
?>
如果可以反向转换,我会感到惊讶。我的意思是,我是否可以将 1388516401 转换为 2014-01-01 00:00:01
。
<?php
echo strtotime("2014-01-01 00:00:01")."<hr>";
// output is 1388516401
?>
如果可以反向转换,我会感到惊讶。我的意思是,我是否可以将 1388516401 转换为 2014-01-01 00:00:01
。
是的,你可以将它转回去。你可以尝试:
date("Y-m-d H:i:s", 1388516401);
这种将日期转换为整数的逻辑在 PHP 的 strtotime 中有解释:
该函数期望得到一个包含英文日期格式的字符串,并尝试将该格式解析为 Unix 时间戳(自1970年1月1日00:00:00 UTC以来的秒数),相对于给定的now时间戳,如果未提供now,则相对于当前时间。
例如,strtotime("1970-01-01 00:00:00")
将返回 0,而 strtotime("1970-01-01 00:00:01")
将返回 1。
这意味着,如果您打印 strtotime("2014-01-01 00:00:01")
,将得到输出 1388516401
,因此日期 2014-01-01 00:00:01
是自1970年1月1日00:00:00 UTC以来的1,388,516,401秒。
-243219600
,它与1962年4月18日有关。当我将其转换为date('d/m/Y', $r)
时,它给出的日期是1962年4月17日。 - Alaeddine你可以试试这个,
echo date("Y-m-d H:i:s", 1388516401);
正如theGame所指出的,
这意味着您传递一个时间字符串值,并可选传递当前时间的值(UNIX时间戳)。返回的值是一个整数,即UNIX时间戳。
echo strtotime("2014-01-01 00:00:01");
这将返回值1388516401,它是2014年1月1日的UNIX时间戳。可以使用如下的date()函数进行确认:
echo date('Y-m-d', 1198148400); // echos 2014-01-01
time() 函数显示当前时间与 Unix 纪元(1970 年 01 月 01 日 00:00:00 GMT)之间的秒数。strtotime() 将普通日期格式转换为 time() 格式。因此,该日期的表示形式将转换为秒数:1388516401。