我正在尝试使用以下代码在表格中显示日期
现在,假设要显示的日期是2013年12月12日,那么echo $ date1将日期显示为2013-12-12。但echo date("j-F-Y", strtotime($date1));
显示日期为1969年12月31日。
<script id="template" type="text/x-handlebars-template">
<table>
<tr>
<th>Posted on: </th>
<td><?php $date1='{{posted}}';echo $date1 ;echo date("j-F-Y", strtotime($date1));?></td>
</tr>
</table>
</script>
如何显示$ date1中打印的日期。为什么date()无法显示正确的日期。
答案 0 :(得分:1)
strtotime在失败时返回false或-1(5.1之前)。该时间戳(0)将等于1970-01-01 00:00:00 GMT。在“减去某事”的某个地方,某个时区等于1969-12-31的日期。
因此strtotime($date1)
无法解析$date1
。你确定它等于字符串'2013-12-12'
吗?使用var_dump($date1);
进行验证。
它可能是一个带有__toString()
- 方法的对象,因此回显会显示该方法的结果,而不是$date1
本身的实际值。
答案 1 :(得分:-1)
strtotime方法返回2013-12-12的其他内容,超出预期。见这里:http://www.php.net/manual/de/function.strtotime.php#100144
补偿这一点的最佳方法是修改您的加入 字符。正斜杠(/)表示美国M / D / Y格式,a 短划线( - )表示欧洲D-M-Y,句点(。)表示ISO Y.M.D。
所以你必须在strtotime使用另一种格式。这也解释了为什么date在1970年1月1日之前返回一个值。