PHP:将一种日期格式转换为另一种动态传入数据格式

PHP:将一种日期格式转换为另一种动态传入数据格式,php,Php,我的申请有问题。我必须将到达日期字符串转换为服务器日期格式。所以我计划将日期和日期格式一起发送到模型类。 像 我的模型有不同类型的客户, 我的web客户端使用一种格式,我的移动客户端使用另一种格式, 所以我决定发送日期格式和日期 我不能使用strotime函数,因为不同调用的格式可能不同。 所需函数将获得2个参数(arrivedDate、arrivedDateFormat) 使用这2个参数,将arrivedDate转换为YYYY-mm-dd格式 因此,请为我提供最好的方法。我认为您应该使用 比如

我的申请有问题。我必须将到达日期字符串转换为服务器日期格式。所以我计划将日期和日期格式一起发送到模型类。 像

我的模型有不同类型的客户, 我的web客户端使用一种格式,我的移动客户端使用另一种格式, 所以我决定发送日期格式和日期

我不能使用strotime函数,因为不同调用的格式可能不同。 所需函数将获得2个参数(arrivedDate、arrivedDateFormat) 使用这2个参数,将arrivedDate转换为YYYY-mm-dd格式 因此,请为我提供最好的方法。

我认为您应该使用

比如:

echo date('YY "-" mm "-" dd', strtotime($givenDate));

如果您能向我们展示一下$givenDate的样子,那也很好。

这样编写函数。 编辑:从评论中更正

function getDate($givenDate,$givenFormat){
//convert given date to yyyy-mm-dd format
$newdate = date($givenFormat, strtotime($givenDate));
return $newdate;
}
用这个

Function mydate($givenDate,$givenFormat){
return date($givenFormat,strtotime($givenDate));
}
根据需要使用您的格式,如“Y-m-D”或“yyyy-mm-dd”

然后像functin一样调用functin

 echo mydate("29-oct-2012","Y-m-d");

请参见

最终我获得了所需的功能

    function convertDate($givenDate,$givenFormat)
{
    $date = DateTime::createFromFormat($givenFormat, $givenDate);
    $ret= $date->format('Y-m-d');
    return $ret;
}

$givenFormat
在哪里使用?当您需要格式
yyyy-mm-dd
时,为什么需要它?不同的客户端可能会访问我的模型,因此我无法确切知道输入日期的正确格式我的服务器日期格式是yyy-mm-dd强制检查应用程序的输入日期,如果格式错误,则返回错误。你把问题复杂化了。我从未见过没有指定日期格式的日期输入字段。使用strotime将传入日期转换为unix时间戳,然后返回日期('format',$incomingtime)$givenDate='05/25/2012'$日期:年月日$newdate=日期('Y-m-d',标准时间('m/d/Y',$givenDate));echo$newdate;标准时间('m/d/Y',$givenDate)返回nothing@Sridhar:当然,你会得到
1970-01-01
,因为阿布舍克·萨哈以错误的方式使用了
strotime
。它应该是
$newdate=date('Y-m-d',strottime($givenDate))您的函数将以给定的信息格式返回日期,但我需要服务器格式的日期echo“给定格式:周一年为8-7-2012=”。mydate('8-7-2012',“Y-m-d”)。“Transtorm to:year周一日
”;echo“给定格式:周一年为2012年8月12日=”.mydate(“2012年8月12日”,“Y-m-d”)。“转换为:周一年”;。给定格式:周一年为8-7-2012=2012-07-08转换到:年周一天给定格式:周一年为12-8-2012=2012-08-12转换到:年周一-day@Sridhar那么问题是什么呢?您想将
mon day year
转换为
year mon day
?让我们
    function convertDate($givenDate,$givenFormat)
{
    $date = DateTime::createFromFormat($givenFormat, $givenDate);
    $ret= $date->format('Y-m-d');
    return $ret;
}