2016-01-24 94 views
2

我是PHP新手。我有一個日期選擇器輸入字段的日期字符串。但是當我嘗試將日期字符串轉換爲日期時,我得到了意外的日期。如何將datepicker輸入中的日期轉換爲PHP中的某種格式?

樣本錯誤:

  • 如果輸入($datestamp)包含24/01/2016,那麼變得$date = '70/01/01 [錯誤]

這裏是PHP代碼:

<?php 
    $datestring = (isset($_POST['datetimepicker1'])) ? $_POST['datetimepicker1'] : "not"; 

    $date = date("y/d/m", strtotime($datestring));  
    echo $datestring; 
    echo var_dump($date);  
?> 

更新: 這是我的datepicker代碼

<script type="text/javascript"> 
     $(function() { 
      $('#datetimepicker1').datetimepicker({format:"DD/MM/YYYY", useCurrent: false }); 
     });   
</script> 

請幫我解決這個問題。這是一個格式問題?我需要將日期插入到Oracle數據庫中。

+1

做一個'var_dump($ datestring);'請 - 是否說''不是''或者它說什麼?你想要什麼格式的'$ date'? '//'或'//'或者什麼? – Will

+2

'1970-01-01'是'0' unix時間戳(UNIX Epoch)的日期。這通常意味着'strtotime()'返回了一個錯誤。 – Will

+0

Thanks @ Will.var_dump($ datestring);顯示字符串'24/01/2016'(長度= 10)。謝謝@Kevin,謝謝 – user5005768

回答

1

根據jQuery,datepicker的默認格式如下: mm/dd/yy

所以,你可以試試這個(爲了給$datestring轉換爲y/m/d格式):

<?php 
$datestring = '24/01/2016'; 
list($day, $month, $year) = explode('/', $datestring); 
$date = DateTime::createFromFormat('Ymd', $year . $month . $day); 
echo $date->format('y/m/d'); 
?> 

您還可以更改日期選擇器:

var date = $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val(); 
+0

但它不轉換。 – user5005768

1

使用此代碼

<?php 
$datestring = (isset($_POST['datetimepicker1'])) ? $_POST['datetimepicker1'] : "not"; 
$datestring = str_replace('/', '-', $datestring); 
$date = date("y/d/m", strtotime($datestring));  
echo $datestring; 
echo var_dump($date);  

?>

只需在傳遞給strtotime函數之前將('/')替換爲(' - ')。有時('/')不起作用。

+0

謝謝@Sonu R。但它是沒有working.it重置爲1 -JAN-1970 – user5005768

+2

替換您的代碼_ $ datestring =(isset($ _ POST ['datetimepicker1']))? $ _POST ['datetimepicker1']:「not」; _ with this _ _ datestring =「24/01/2016」; _僅用於測試和檢查。可能是你的datetimepicker1是錯誤的。 – Drone

+0

謝謝@Sonu R.我確實echo var_dump($ datestring);並得到他的字符串'24/01/2016'(長度= 10) – user5005768

1

請用下面的代碼替換日期函數。我已經使用爆炸分別提取年份,月份和日期,並將其傳遞給strtotime函數。

<?php 
    $datestring = (isset($_POST['datetimepicker1'])) ? $_POST['datetimepicker1'] : "not"; 
    $date_arr = explode('/',$datestring); 
    $date = date("Y/m/d", strtotime($date_arr[2].$date_arr[1].$date_arr[0])); 
    echo $datestring; 
    echo var_dump($date);  
?> 
+1

謝謝@Sashant Pardeshi。但它是沒有working.it重置爲1 -JAN-1970 – user5005768

+1

非常抱歉的問題,你可以提供在$ _POST ['datetimepicker1']收到的價值。可能是一些問題。 –

相關問題