如何检查日期是否为 j-n-Y 格式?如果是那么如何将其转换为 d-m-Y 格式?
How to check whether a date is in j-n-Y format or not? if yes then how to convert it to d-m-Y format?
我想知道日期是否为 "j/n/Y" 格式,如果是,那么我想将 ot 转换为 "d/m/Y"。如果它已经是 "d/m/Y" 格式,我不想对其进行任何更改。
我试过了-
$date = '1/7/2019';
这里我假设 1 是日期,7 是月份,2019 是年份(很明显)。现在,
$date_format_changed = date("d/m/Y", strtotime($date));
以上代码给出的输出为“07/01/2019”。但我希望输出为“01/07/2019”。
如果日期已经是 d/m/Y 格式,例如 17/12/2019,当这个字符串将在上面的日期转换代码中传递时,它会给我输出“01/01/1970”。不知道为什么。
请帮忙!
您可以"help"解释器来猜测正确的格式。
date_create_from_format 是一种方法。
$date = '1/7/2019';
$parsed = date_create_from_format("j/n/Y", $date);
if ($parsed == false) {
// Not in j/n/Y format
} else {
$dmY = $parsed->format("d/m/Y");
}
请注意,这还将解析理论上匹配 j/n/Y 但意图不同的日期。 (例如,当您使用 d/m/Y 时,它可能还会检测到 m/d/Y)
一种做法是将日期explode
分解成日月年组成部分,然后分析
$date = '1/7/2019';
$array = explode("/", $date);
$day = $array[0];
$month = $array[1];
$year = $array[2];
if(strlen($day) == 1) $day = "0".$day;
if(strlen($month) == 1) $month = "0".$month;
echo $day."/".$month."/".$year;
我想知道日期是否为 "j/n/Y" 格式,如果是,那么我想将 ot 转换为 "d/m/Y"。如果它已经是 "d/m/Y" 格式,我不想对其进行任何更改。
我试过了-
$date = '1/7/2019';
这里我假设 1 是日期,7 是月份,2019 是年份(很明显)。现在,
$date_format_changed = date("d/m/Y", strtotime($date));
以上代码给出的输出为“07/01/2019”。但我希望输出为“01/07/2019”。
如果日期已经是 d/m/Y 格式,例如 17/12/2019,当这个字符串将在上面的日期转换代码中传递时,它会给我输出“01/01/1970”。不知道为什么。
请帮忙!
您可以"help"解释器来猜测正确的格式。
date_create_from_format 是一种方法。
$date = '1/7/2019';
$parsed = date_create_from_format("j/n/Y", $date);
if ($parsed == false) {
// Not in j/n/Y format
} else {
$dmY = $parsed->format("d/m/Y");
}
请注意,这还将解析理论上匹配 j/n/Y 但意图不同的日期。 (例如,当您使用 d/m/Y 时,它可能还会检测到 m/d/Y)
一种做法是将日期explode
分解成日月年组成部分,然后分析
$date = '1/7/2019';
$array = explode("/", $date);
$day = $array[0];
$month = $array[1];
$year = $array[2];
if(strlen($day) == 1) $day = "0".$day;
if(strlen($month) == 1) $month = "0".$month;
echo $day."/".$month."/".$year;