转换日期格式1542575966120 18/11/2018

时间:2018-11-18 21:35:14

标签: php

我有一个数据库,该数据库显示用户上次登录的时间,但随后显示1542575966120。我希望它显示为18/11/2018 19:00

我尝试在php中使用它

 Object obj

但我不能。

对不起英语

2 个答案:

答案 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/这个工具,您可以将日期与时间戳转换,反之亦然。

然后回答您的问题,系统将日期作为时间戳保存到数据库中,以(可能)绕过使用它的每个不同系统上的格式错误。

Nevermind,TL; DR:

当您将其提供给我上面提到的时间戳转换器时,数字显示为 2018年11月18日,星期日,21:19:26.120 。使用PHP,您可以使用:

$unixTimestamp = 1542575966120;
$dt = DateTime::createFromFormat("U.u", $unixTimestamp / 1000);
var_dump($dt);

要转换为PHP DateTime类,则可以在应用程序中使用它。