我有一个数据库,该数据库显示用户上次登录的时间,但随后显示1542575966120。我希望它显示为18/11/2018 19:00
我尝试在php中使用它
Object obj
但我不能。
对不起英语
答案 0 :(得分:0)
因此,如@Taha Paksu所述,这些数字是时间戳记(自1970年1月1日以来的秒数)。尝试以下代码:
$intDate = 1542575966120;
$newDate = date('d/m/Y H:i', $intDate/1000);
以毫秒为单位,日期函数接受秒,因此可以除以1000。也无需将其放入strtotime,因为此函数旨在将字符串日期转换为...表示数字时间戳。
根据您的情况,您可以放置$intDate = $infologado['lastlogin'];
而不是第一行来从数据库动态获取结果。
答案 1 :(得分:0)
首先,您需要了解时间戳。时间戳是一个数字,表示自纪元(01/01/1970)起经过的秒数(或毫秒,有些还包括毫秒)。可以在这里找到一般定义:
Unix纪元(或Unix时间或POSIX时间或Unix时间戳)是自1970年1月1日(UTC / GMT午夜)以来经过的秒数,不计leap秒(在ISO 8601:1970-01-中) 01T00:00:00Z)。从字面上讲,纪元是Unix时间0(1970年1月1日午夜),但是“纪元”通常被用作“ Unix时间”的同义词。许多Unix系统将纪元日期存储为带符号的32位整数,这可能会在2038年1月19日引起问题(称为2038年问题或Y2038)。 此页面上的转换器将以秒,毫秒和微秒为单位的时间戳转换为可读的日期。
来源: https://www.epochconverter.com/这个工具,您可以将日期与时间戳转换,反之亦然。
然后回答您的问题,系统将日期作为时间戳保存到数据库中,以(可能)绕过使用它的每个不同系统上的格式错误。
当您将其提供给我上面提到的时间戳转换器时,数字显示为 2018年11月18日,星期日,21:19:26.120 。使用PHP,您可以使用:
$unixTimestamp = 1542575966120;
$dt = DateTime::createFromFormat("U.u", $unixTimestamp / 1000);
var_dump($dt);
要转换为PHP DateTime类,则可以在应用程序中使用它。