在页面上显示日期

时间:2017-09-18 10:59:22

标签: php mysql date

我的数据库中的日期格式是Y-m-d h:i:s示例:2017-08-30 19:19:20并且我试图在我的页面上显示该日期..

但问题是当它显示在我的页面上时,日期与我的数据库中的数据相比有所不同。

像 db的数据是

2017-08-21  18:00:00
2017-08-24  18:00:00
2017-08-30  18:00:00

但是显示的日期是

12/31/1969 6:00 PM
12/31/1969 6:00 PM
12/31/1969 6:00 PM

这是我使用的格式..

<?php echo date('m/d/Y H:i a',strtotime($date)); ?>

$ date是我的数据库的日期..

the date should be 
08/21/2017 6:00 PM
08/24/2017 6:00 PM
08/30/2017 6:00 PM

知道为什么会发生这种情况以及任何可能的解决方案吗?..

2 个答案:

答案 0 :(得分:3)

给定的PHP代码行应该能够提供所需的输出: -

                   Asset     Size  Chunks             Chunk Names
javascripts/webpack/app.js   211 kB       0  [emitted]  javascripts/webpack/app
stylesheets/webpack/app.js  4.13 kB       1  [emitted]    stylesheets/webpack/app
stylesheets/webpack/app.scss  2.99 kB       1  [emitted]  stylesheets/webpack/app
[0] ./app/webpack/js/behaviors/lory-icon-slider.js.coffee 1.1 kB {0} [optional] [built]
[1] ./app/webpack/css/components (\.scss|\.css)$ 160 bytes {1} [built]
[2] ./app/webpack/js/behaviors (\.js|\.js.jsx|\.js.coffee)$ 252 bytes {0} [built]
[3] ./~/pickmeup/css/pickmeup.scss 41 bytes {1} [built]
[4] ./app/webpack/css/app.js 205 bytes {1} [built]
[5] ./app/webpack/js/app.js 250 bytes {0} [built]
[6] ./app/webpack/js/behaviors/pickmeup-fixed-calendar.js 3.47 kB {0} [optional] [built]
[7] ./~/lory.js/dist/jquery.lory.js 25 kB {0} [built]
[8] ./~/pickmeup/js/pickmeup.js 41.4 kB {0} [built]
[9] (webpack)/buildin/global.js 509 bytes {0} [built]
Child extract-text-webpack-plugin:
   [0] ./~/css-loader/lib/css-base.js 1.51 kB {0} [built]
   [1] ./~/css-loader!./~/sass-loader/lib/loader.js!./~/pickmeup/css/pickmeup.scss 3.23 kB {0} [built]

<强>输出:

<?php

$dates = [
'2017-08-21  18:00:00',
'2017-08-24  18:00:00',
'2017-08-30  18:00:00',
];

foreach ($dates as $string) {
    $date = new DateTime($string);
    echo $date->format('m/d/Y g:i A')."\n";
}

代码段取自3v4l.org

答案 1 :(得分:2)

其他答案似乎回答了如何解决它 我以为我可以解释它为什么会发生。

Strtotime失败,因为它无法解析日期并返回false 假与0相同。
此零点按日期获取,并根据您的格式创建日期 但是因为strtotime返回0,日期返回0 UNIX时间=&gt; 1970-01-01 00:00。
由于您所处的时区(或至少是服务器)与UTC存在负差异,因此从1970-01-01 00:00减去几个小时,这样就可以得到您的输出。