【问题标题】:convert string to date php将字符串转换为日期php
【发布时间】:2012-01-03 11:58:51
【问题描述】:

你好,我想建造

我从表单 xxx 中得到 $date 和 $date1。我想做休假计划。

现在我想要处理 $date 与值为 xx-xx-xxxx(dd/mm/yyyy) 的变量字符串和 $date1 现在我想将它们转换为日期。

我已经知道如何使用 datediff() 计算天数

我转换 $date 以便我可以使用 dateadd() 函数

这里是代码

$t1 = substr($date,0,2);
$b1 = substr($date,3,2);
$y1 = substr($date,6,4);

$t2 = substr($date11,0,2);
$b2 = substr($date1,3,2);
$y2 = substr($date1,6,4);

$tawal ="$y1-$b1-$t1";
$takhir = "$y2-$b2-$t2";

$query = "SELECT datediff('$takhir', '$tawal')as selisih";
$hasil = mysql_query($query);
$data = mysql_fetch_array($hasil);

$times = $data['selisih']; 
$times = + 1;

这里是图片

【问题讨论】:

    标签: php mysql


    【解决方案1】:

    你不需要 substr 或 mysql 。首先获取没有 substr 的日期:

    $tawal = date('Y-m-d', strtotime($date));
    $takhir = date('Y-m-d', strtotime($date1));
    

    现在你有了 Y-m-d 格式的字符串。要找到差异,尽管您不必转换为 Y-m-d,因为我们不需要 mysql。您可以使用this method 来查找以秒为单位的差异。

    $diff = abs(strtotime($date2) - strtotime($date));
    $years = floor($diff / (365*60*60*24));
    $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
    $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
    

    【讨论】:

      【解决方案2】:

      这是我的约会助手:

      function date_as($date, $format = 'Verbal, hour:minute')
      {
          parse_date($date);
      
          $format = str_replace(array('verbal', 'Verbal'), array($date['verbal'], $date['Verbal']), $format);
      
          return str_replace(array_keys($date), array_values($date), $format);
      }
      
      function parse_date(&$date)
      {
          $unix   = is_numeric($date) ? $date : strtotime($date);
      
          $date = array(
              'month'     => strtolower(date('F', $unix)),
              'dayweek'   => strtolower(date('l', $unix)),
              'date'      => date('d', $unix),
              'year'      => date('Y', $unix),
              'hour'      => date('H', $unix),
              'minute'    => date('i', $unix),
              'second'    => date('s', $unix),
              'today'     => (date('Y-m-d',strtotime('now')) == date('Y-m-d', $unix)),
              'yesterday' => (date('Y-m-d', strtotime('now - 1 day')) == date('Y-m-d', $unix)),
              'tomorrow'  => (date('Y-m-d', strtotime('now + 1 day')) == date('Y-m-d', $unix)),
              'mint'      => date('m', $unix),
          );
      
          if ($date['yesterday'])
          {
              $date['verbal'] = 'yesterday';
          }
          elseif ($date['today'])
          {
              $date['verbal'] = 'today';
          }
          elseif ($date['tomorrow'])
          {
              $date['verbal'] = 'tomorrow';
          }
          else
          {
              $date['verbal'] = 'date month';
          }
      
          foreach (array('dayweek', 'month', 'verbal', 'date') as $p)
          {
              $date[ucfirst($p)] = mb_convert_case($date[$p], \MB_CASE_TITLE, 'UTF-8');
          }
      }
      

      格式,如你所愿...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-24
        • 2015-04-27
        • 2015-10-01
        • 2018-03-29
        • 2012-05-21
        • 1970-01-01
        • 2011-11-28
        相关资源
        最近更新 更多