PHP方法strotime的结果不好

PHP方法strotime的结果不好,php,Php,我正在通过2014-02-31并获得输出03/03/2014。 请帮帮我。发行日期是二月,大多数年份只有28天。2/31将在逻辑上转换为3/3。在闰年你会得到3/4 strotime()方法,因为它需要非常灵活,以便能够处理内容而不会出现以下问题: function DateFormat($dt) { return $newDate = date("d/m/Y", strtotime($dt)); } $cr='2014-02-31'; echo DateFormat($cr); I

我正在通过
2014-02-31
并获得输出
03/03/2014

请帮帮我。

发行日期是二月,大多数年份只有28天。2/31将在逻辑上转换为3/3。在闰年你会得到3/4

strotime()
方法,因为它需要非常灵活,以便能够处理内容而不会出现以下问题:

function DateFormat($dt)
{
    return $newDate = date("d/m/Y", strtotime($dt));
}
$cr='2014-02-31';
echo DateFormat($cr);


Input: $cr='2014-02-31';
Output: 03/03/2014
不,我认为它不应该出错。当您有一个格式良好的日期字符串时,PHP有一个名为
checkdate()
的冒名方法,您可以使用:

 strtotime('2014 February + 31 day - 1 year');

发行日期是二月,大多数年份只有28天。2/31将在逻辑上转换为3/3。在闰年你会得到3/4

strotime()
方法,因为它需要非常灵活,以便能够处理内容而不会出现以下问题:

function DateFormat($dt)
{
    return $newDate = date("d/m/Y", strtotime($dt));
}
$cr='2014-02-31';
echo DateFormat($cr);


Input: $cr='2014-02-31';
Output: 03/03/2014
不,我认为它不应该出错。当您有一个格式良好的日期字符串时,PHP有一个名为
checkdate()
的冒名方法,您可以使用:

 strtotime('2014 February + 31 day - 1 year');

PHP的日期函数使用日期而不是字符串。这是一个重要的区别。字符串只是按指定顺序排列的一组字符。日期有月、日、年、小时、分钟、秒、时区等。当PHP处理日期时,它会考虑所有这些

因此,当您将Feb 31传递给PHP日期函数时,它将尝试将其理解为日期而不是字符串。这意味着它不仅仅是要把那个日期切成小块,然后按照你的期望重新排列。它将把这个日期转换成它可以使用的日期表示形式,然后对它进行操作


我们都知道,二月没有31天。由于日期无效,PHP试图提供帮助,并在当年2月的最后一天之后三天(因为今年2月只有28天)为您提供该日期。

PHP的日期函数使用日期而不是字符串。这是一个重要的区别。字符串只是按指定顺序排列的一组字符。日期有月、日、年、小时、分钟、秒、时区等。当PHP处理日期时,它会考虑所有这些

因此,当您将Feb 31传递给PHP日期函数时,它将尝试将其理解为日期而不是字符串。这意味着它不仅仅是要把那个日期切成小块,然后按照你的期望重新排列。它将把这个日期转换成它可以使用的日期表示形式,然后对它进行操作


我们都知道,二月没有31天。由于日期无效,PHP试图提供帮助,并在当年2月的最后一天之后三天(因为今年2月只有28天)为您提供该日期。

从什么时候开始2月有31天?结果对我来说似乎是正确的,因为PHP正在为您计算错误
31-28=3
$cr='2014-02-31';这里的日期格式是一样的(YYYY-MM-DD)哦!!非常感谢Prix先生…:D很多人都笑了…你觉得呢,strotime()必须显示一个错误才能出来吗?@RajaRassani不,看到我的答案了吗,为什么2月有31天?结果对我来说似乎是正确的,因为PHP正在为您计算错误
31-28=3
$cr='2014-02-31';这里的日期格式是一样的(YYYY-MM-DD)哦!!非常感谢Prix先生…:D哈哈大笑……你觉得呢,strotime()必须显示错误才能出来吗?@RajaRassani不,看看我的答案,为什么我喜欢你的“逻辑”翻译。如果它是完全无效的,那么它以什么方式是合乎逻辑的呢?PHP是否可以逻辑地为我翻译这个
$x=1/0
?@BabyAzerty strotime旨在解析字符串中的任何疯狂元素,并尝试为其创建时间戳,而不是验证提供的字符串(即使它看起来像一个日期)。有一个php函数
checkdate()
用于检查dateYes sir的有效性。我喜欢并且很满意。谢谢:)我喜欢你的“逻辑”翻译。如果它是完全无效的,那么它以什么方式是合乎逻辑的呢?PHP是否可以逻辑地为我翻译这个
$x=1/0
?@BabyAzerty strotime旨在解析字符串中的任何疯狂元素,并尝试为其创建时间戳,而不是验证提供的字符串(即使它看起来像一个日期)。有一个php函数
checkdate()
用于检查dateYes sir的有效性。我喜欢并且很满意。感谢:)+1:更新后,这成为一个非常好的答案,详细解释了问题。+1:更新后,这成为一个非常好的答案,详细解释了问题。