Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
一个用于两种日期格式的分解函数 我有两个PHP变量 $CuffyDATEARR 和 $咨询日期。用户可以插入任何日期格式考虑现在22-12 2014或22/12 /2014。我要做的是写一个爆炸函数,这两个条件都适用,即两个日期格式。 $consult_date_arr=explode("/",$consultationdate); $consult_date_arr=explode("-",$consultationdate);_Php - Fatal编程技术网

一个用于两种日期格式的分解函数 我有两个PHP变量 $CuffyDATEARR 和 $咨询日期。用户可以插入任何日期格式考虑现在22-12 2014或22/12 /2014。我要做的是写一个爆炸函数,这两个条件都适用,即两个日期格式。 $consult_date_arr=explode("/",$consultationdate); $consult_date_arr=explode("-",$consultationdate);

一个用于两种日期格式的分解函数 我有两个PHP变量 $CuffyDATEARR 和 $咨询日期。用户可以插入任何日期格式考虑现在22-12 2014或22/12 /2014。我要做的是写一个爆炸函数,这两个条件都适用,即两个日期格式。 $consult_date_arr=explode("/",$consultationdate); $consult_date_arr=explode("-",$consultationdate);,php,Php,分解函数应该是上述两个分解函数在功能上的组合,这样它对两种格式都有效。如果有任何疑问,请告诉我 提前感谢。您可以编写自定义函数并在其中调用explode 像 $string=“-”或“/”或任何您想要爆炸的内容 function dateFormat($string,$date) { $consult_date_arr=explode($string,$consultationdate); return $consult_date_arr; } 您需要正则表达式,在php中使用p

分解函数应该是上述两个分解函数在功能上的组合,这样它对两种格式都有效。如果有任何疑问,请告诉我


提前感谢。

您可以编写自定义函数并在其中调用explode

像 $string=“-”或“/”或任何您想要爆炸的内容

function dateFormat($string,$date)
{
   $consult_date_arr=explode($string,$consultationdate);
   return  $consult_date_arr;
}

您需要正则表达式,在php中使用
preg\u match

<?php
$consult_date_arr;
$consultationdate = '22/12/2014';
if(preg_match('/[\d]{2}-[\d]{2}-[\d]{4}/', $consultationdate)){
$consult_date_arr = explode('-', $consultationdate);
}else if(preg_match('/[\d]{2}\/[\d]{2}\/[\d]{4}/', $consultationdate)){
    $consult_date_arr = explode('/', $consultationdate);
}
var_dump($consult_date_arr);
?>

试试这样的方法

    <?php
        $date = '22/12/2014';
        $keywords = preg_split("/[-,\/]+/", $date);
        print_r($keywords);
    ?>

preg_split-通过正则表达式拆分字符串

参考文献


您好,请检查下面的代码

<?php
if(!function_exists('date_explode')){
function date_explode($date){
    $explode_date = array();
    $delimiter    = '';
    if(strstr($date, '/')){
        $delimiter = '/';
    }elseif(strstr($date, '-')){
        $delimiter = '-';
    }
    if(!empty($delimiter)){
        $explode_date = explode($delimiter, $date);
    }
    return $explode_date;
}   
}

$consult_date_arr=date_explode('22-12-2014');
print_r($consult_date_arr);
$consult_date_arr=date_explode('22/12/2014');
print_r($consult_date_arr);
?>


附言:请务必进行验证,验证将阻止您出现此类问题

感谢您的回复,但正如我在问题中提到的,我不确定用户将使用哪种日期格式,因此我无法将其分配给$string,我不想为此使用额外的函数。您可以通过查找分隔符在给定日期中的位置来查找分隔符HAL:如何操作?$date=“15-01-2010”;$string=substr($date,2,1);先使用strotime,然后分解如何。@SurabhilSergy请详细说明。为什么不对用户输入进行验证?这样可以节省您的时间time@SuhelMeman不能那样做。可能是重复的
<?php
if(!function_exists('date_explode')){
function date_explode($date){
    $explode_date = array();
    $delimiter    = '';
    if(strstr($date, '/')){
        $delimiter = '/';
    }elseif(strstr($date, '-')){
        $delimiter = '-';
    }
    if(!empty($delimiter)){
        $explode_date = explode($delimiter, $date);
    }
    return $explode_date;
}   
}

$consult_date_arr=date_explode('22-12-2014');
print_r($consult_date_arr);
$consult_date_arr=date_explode('22/12/2014');
print_r($consult_date_arr);
?>