2014-11-22 92 views
-1

我想分割日期和時間字符串。我有兩種格式:MM/DD/YYYY HH:MM:SS AM和MM/DD/YYYYPHP爆炸值不存在

我不斷收到錯誤,當不存在爆炸陣列時間值。 如果沒有值,我希望它默認爲12:00:00 AM。

<?php 
     $date = array('10/6/2014 10:00:00 AM','10/10/2014'); 

     foreach ($date as $date) { 
     $date = str_replace(array('/', ' ', ':'),',',$date); 

     $split_date = explode(",",$date); 

       $month = $split_date[0]; 
       $day = $split_date[1]; 
       $year = $split_date[2]; 
       $hour = $split_date[3]; 
       $minute = $split_date[4]; 
       $second = $split_date[5]; 
       $AMPM = $split_date[6]; 

     echo $month; 
     echo "<br />"; 
     echo $day; 
     echo "<br />"; 
     echo $year; 
     echo "<br />"; 
     echo $hour; 
     echo "<br />"; 
     echo $minute; 
     echo "<br />"; 
     echo $second; 
     echo "<br />"; 
     echo $AMPM; 
     echo "<br />";echo "<br />"; 
     } 

>

+0

你的目標是什麼?把日期/時間分成不同的部分? – Rizier123 2014-11-22 11:42:04

+0

是的,需要將日期和時間更改爲不同的格式;但是,如果數組中不存在該時間,則會引發錯誤。 – user2226714 2014-11-22 11:43:23

+0

你甚至不需要使用循環!看到我的答案。 – Rizier123 2014-11-22 11:52:22

回答

1

使用此代碼,你不會得到錯誤

$month = isset($split_date[0]) ? $split_date[0] : ''; 
$day = isset($split_date[1]) ? $split_date[1] : ''; 
$year = isset($split_date[2]) ? $split_date[2] : ''; 
$hour = isset($split_date[3]) ? $split_date[3] : ''; 
$minute = isset($split_date[4]) ? $split_date[4] : ''; 
$second = isset($split_date[5]) ? $split_date[5] : ''; 
$AMPM = isset($split_date[6]) ? $split_date[6] : ''; 
+0

謝謝!這工作! – user2226714 2014-11-22 11:47:30

+0

永遠歡迎我的朋友:) – 2014-11-22 11:48:14

-1

這應該爲你工作,以獲得不同的值:

<?php 

    $dates = array('10/6/2014 10:00:00 AM','10/10/2014'); 
    $split = preg_split('/([\/: X])/', implode(" ", $dates)); 
    print_r($split); 


?> 

輸出:

Array 
(
    [0] => 10 
    [1] => 6 
    [2] => 2014 
    [3] => 10 
    [4] => 00 
    [5] => 00 
    [6] => AM 
    [7] => 10 
    [8] => 10 
    [9] => 2014 
)