如何使用单个 php 函数以唯一格式更改多个日期格式?
How can I change more than a date format in a unique format with a single php function?
我想了解如何使用 php 函数将不同的日期格式更改为单一格式。在尝试了各种方法之后,我无法解决这个难题。我总是在我的自定义 function.php 中顺利使用以下代码:
/* Change date format for coupon */
function change_date_format($x) {
$date = DateTime::createFromFormat('j-M-Y', $x);
$x = $date->format('Y-m-d');
return $x;
}
这样我就可以把格式'j-M-Y'转换成格式'Y-m-d'。问题是现在我不仅需要转换日期格式'j-M-Y',还需要转换其他格式(例如,我必须转换日期格式'j-M-Y'和日期格式'Y-m-d\TH:i:sP'格式 'Y-m-d'。我试图组合不同的逻辑函数,但系统给我错误。
感谢所有试图帮助我的人...
向名为 $inputFormat
的函数添加一个输入参数,并使用它来代替 'j-M-Y'
,因此您应该始终指定输入格式。您可以指定默认的输入格式。
/**
* Return with a normal format of any date by given format
* Default format is j-M-Y if no input format given
*
* @param string $dateString
* @param string $inputFormat
* @return string
*/
function change_date_format($dateString, $inputFormat = 'j-M-Y') {
$date = DateTime::createFromFormat($inputFormat, $dateString);
return $date->format('Y-m-d');
}
echo change_date_format('23-05-2016', 'd-m-Y');
echo change_date_format('05/23/2016', 'm/d/Y');
您可以使用如下附加参数:
/*Change date format for coupon*/
function change_date_format($x, $dateFormat) {
$date = DateTime::createFromFormat($dateFormat, $x);
$x = $date->format('Y-m-d');
return $x;
}
DateTime
class 非常擅长在没有 createFromFormat()
的情况下解析不同的格式。如果您拥有的格式受支持 (Supported Date and Time Formats),那么就让它根据内置逻辑创建。如果 $x = '2016-06-30T23:59:59+02:00'
那么 DateTime
class 处理得很好:
function change_date_format($x) {
$date = new DateTime($x);
return $date->format('Y-m-d');
}
我想了解如何使用 php 函数将不同的日期格式更改为单一格式。在尝试了各种方法之后,我无法解决这个难题。我总是在我的自定义 function.php 中顺利使用以下代码:
/* Change date format for coupon */
function change_date_format($x) {
$date = DateTime::createFromFormat('j-M-Y', $x);
$x = $date->format('Y-m-d');
return $x;
}
这样我就可以把格式'j-M-Y'转换成格式'Y-m-d'。问题是现在我不仅需要转换日期格式'j-M-Y',还需要转换其他格式(例如,我必须转换日期格式'j-M-Y'和日期格式'Y-m-d\TH:i:sP'格式 'Y-m-d'。我试图组合不同的逻辑函数,但系统给我错误。
感谢所有试图帮助我的人...
向名为 $inputFormat
的函数添加一个输入参数,并使用它来代替 'j-M-Y'
,因此您应该始终指定输入格式。您可以指定默认的输入格式。
/**
* Return with a normal format of any date by given format
* Default format is j-M-Y if no input format given
*
* @param string $dateString
* @param string $inputFormat
* @return string
*/
function change_date_format($dateString, $inputFormat = 'j-M-Y') {
$date = DateTime::createFromFormat($inputFormat, $dateString);
return $date->format('Y-m-d');
}
echo change_date_format('23-05-2016', 'd-m-Y');
echo change_date_format('05/23/2016', 'm/d/Y');
您可以使用如下附加参数:
/*Change date format for coupon*/
function change_date_format($x, $dateFormat) {
$date = DateTime::createFromFormat($dateFormat, $x);
$x = $date->format('Y-m-d');
return $x;
}
DateTime
class 非常擅长在没有 createFromFormat()
的情况下解析不同的格式。如果您拥有的格式受支持 (Supported Date and Time Formats),那么就让它根据内置逻辑创建。如果 $x = '2016-06-30T23:59:59+02:00'
那么 DateTime
class 处理得很好:
function change_date_format($x) {
$date = new DateTime($x);
return $date->format('Y-m-d');
}