【问题标题】:One explode function for two date formats两种日期格式的一种分解功能
【发布时间】:2013-11-19 05:58:06
【问题描述】:

我有两个 PHP 变量 $consult_date_arr$consultationdate。用户可以插入任何日期格式考虑现在 22-12-2014 或 22/12/2014。我想做的是我想写一个爆炸应该适用于两种条件的函数,即适用于两种日期格式。

$consult_date_arr=explode("/",$consultationdate);
$consult_date_arr=explode("-",$consultationdate);

explode 函数应该是以上两个explode 函数在功能上的组合,这样的日期它适用于两种格式。如果有任何疑问,请告诉我。

提前致谢。

【问题讨论】:

  • 先用strtotime再爆炸怎么样。
  • @SurabhilSergy 请详细说明。
  • 你为什么不对用户输入进行验证?它可以节省你的时间
  • @SuhelMeman 做不到。

标签: php


【解决方案1】:

试试这样的

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

preg_split — 用正则表达式分割字符串

参考

http://php.net/manual/en/function.preg-split.php

【讨论】:

    【解决方案2】:
    <?php
        $dt = "1992-05-30";
        //$dt = "1992/05/30";
        function expld($date){
            $date = str_replace("/", "-", $date);
            $date = explode("-",$date);
            return $date;
        }
        $newdate = expld($dt);
        echo $newdate[0];
    
    ?>
    

    【讨论】:

      【解决方案3】:

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

      喜欢 $string = "-" OR "/" 或者你想用什么来爆炸

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

      【讨论】:

      • 感谢您的回复,但正如我在问题中提到的,我不确定用户将使用哪种日期格式,因此我无法将其分配给 $string,我不想为此使用额外的功能.
      • 你可以通过在给定日期找到它的位置来找到分隔符
      • vishal : 怎么做?
      • $date = "15-01-2010"; $string = substr($date, 2,1);
      【解决方案4】:

      你需要正则表达式,在 php 中使用 preg_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);
      ?>
      

      【讨论】:

        【解决方案5】:

        您好,请检查下面的代码,

        <?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);
        ?>
        

        fiddle example

        P.S.:请务必进行验证,验证将防止您出现此类问题

        【讨论】:

          猜你喜欢
          • 2020-07-04
          • 2019-11-10
          • 1970-01-01
          • 2018-11-17
          • 1970-01-01
          • 2013-01-09
          • 2018-03-07
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多