strtotime()由于某种原因不起作用

时间:2014-04-08 07:43:45

标签: php date

我有一个字符串格式为:dd / mm / yy

e.g。 29/03/14

但是当我使用date()打印它时,我会得到一个完全不同的日期!

我错过了什么?

$endDate = "29/03/14";
echo date("jS F, Y", strtotime( $endDate ));
  • 1970年1月1日

我甚至尝试过:

echo date("jS F, Y", strtotime( trim($endDate) ));

没有运气!

我正在从文本文件中读取$ endDate

我想要做的是查明它是否是该月的最后一天......

即。本月为03 - 3月为31天 档案中的某一天是29 这不是本月的最后一天

3 个答案:

答案 0 :(得分:2)

您的日期格式无效。

检查 Date Formats

您可以考虑使用date_create_from_format('d/m/y','29/03/14');并使用 DateTime 对象。

答案 1 :(得分:2)

使用DateTime::createFromFormat

$date = DateTime::createFromFormat('d/m/y', '29/03/14');
echo $date->format("jS F, Y");

获得最后一天

echo $date->format('t');

答案 2 :(得分:1)

您的日期格式未被strtotime()识别。改为使用DateTime类:

$dateObj = DateTime::createFromFormat('d/m/y', $str);
echo $dateObj->format('jS F, Y');

输出:

29th March, 2014

Demo


  

我想要做的是查明它是否是该月的最后一天......

为此,您只需检查给定日期是否与该月的最后一天相同(可以使用t格式字符获得)

$str = '29/03/14';
$dateObj = DateTime::createFromFormat('d/m/y', $str);

if ($dateObj->format('d') == $dateObj->format('t')) {
    echo 'Given date is the last day of the month';
}