2016-01-24 93 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']收到的价值。可能是一些问题。 –

相关问题