我的数据库中的日期格式是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
知道为什么会发生这种情况以及任何可能的解决方案吗?..
答案 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减去几个小时,这样就可以得到您的输出。