2012-01-03 2 views
2

こんにちは私はビルドしたかった現在の文字列をPHPに変換する

私は$ xと$ date1をフォームxxxから取得します。私は休暇プログラムを作りたがっていました。

今私は値xx-xx-xxxx(dd/mm/yyyy)と $ date1の値を持つ変数stringをプロセス$ dateにしたいと思っています。

私はすでに私はコード

ここ
$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; 

画像 enter image description here()関数ここ

をDATEADD使用することができますので、私は$日付を変換

)(DATEDIFFを使用して一日をカウントする方法を知っています

答えて

6

これにはsubstrまたはmysqlは必要ありません。まず、SUBSTRせずにあなたの日付を取得します:

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

は今、あなたは、Y-M-Dフォーマットされた文字列を持っています。 diffを見つけるには、mysqlを必要としないので、Y-m-dに変換する必要はありません。 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)); 
0

は、日付のための私のヘルパーです:

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'); 
    } 
} 

フォーマット、あなたが望むように...

関連する問題