如何将日期选择器输入中的日期转换为 PHP 中的某种格式


How do I convert a date from a datepicker input to a certain format in PHP?

我是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);     
?>

更新:这是我的日期选择器代码

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

请帮我解决这个问题。这是格式问题吗?我需要将日期插入到 Oracle 数据库中。

请将日期函数替换为以下代码。我使用爆炸分别提取年,月和日期,并将其传递给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);     
?>

根据jQuery,日期选择器的默认格式如下: 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();

使用此代码

<?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 函数之前将 ('/') 替换为 ('-')。有时 ("/") 不起作用。