Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中将日期选择器输入的日期转换为特定格式?_Php_Date - Fatal编程技术网

如何在PHP中将日期选择器输入的日期转换为特定格式?

如何在PHP中将日期选择器输入的日期转换为特定格式?,php,date,Php,Date,我是PHP新手。我有一个来自日期选择器输入字段的日期字符串。但当我试图将日期字符串转换为日期时,我得到了一个意外的日期 示例错误: 如果输入($datestamp)包含2016年1月24日,则它变为$date='70/01/01[错误] 以下是PHP代码: <?php $datestring = (isset($_POST['datetimepicker1'])) ? $_POST['datetimepicker1'] : "not"; $date = date(

我是PHP新手。我有一个来自日期选择器输入字段的日期字符串。但当我试图将日期字符串转换为日期时,我得到了一个意外的日期

示例错误:

  • 如果输入(
    $datestamp
    )包含
    2016年1月24日
    ,则它变为
    $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>

$(函数(){
$('#datetimepicker1')。datetimepicker({格式:“DD/MM/YYYY”,useCurrent:false});
});         

请帮我修一下。这是格式问题吗?我需要将日期插入Oracle数据库。

根据jQuery,datepicker默认格式如下:
mm/dd/yy

因此,您可以尝试这样做(以便将
$datestring
转换为
y/m/d
格式):

使用此代码

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


在传递到strotime函数之前,只需将('/')替换为('-')。有时(“/”)不起作用。

请用以下代码替换日期函数。我使用explode分别提取年、月和日期,并将其传递给strotime函数

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


执行
var\u转储($datestring)请——它是说
“不是”
还是说什么?您希望
$date
采用什么格式
/
/
或什么?
1970-01-01
0
unix时间戳(unix纪元)的日期。这通常意味着
strotime()
返回了一个错误;显示字符串'24/01/2016'(长度=10)。谢谢谢谢@Kevin,但它没有转换。谢谢@Sashant Pardeshi。但它不工作。它被重置为1970年1月1日。非常抱歉,请您提供在post$中收到的值。\ u post['datetimepicker1']。可能有什么问题。谢谢@Sonu R。但是它不工作。它被重置为1970年1月1日替换代码$datestring=(isset($\u POST['datetimepicker1'))$_POST['datetimepicker1']:“不是”;使用此$datestring=“24/01/2016”;只是为了测试和检查。可能是你的datetimepicker1错了。谢谢@Sonu R。我做了echo var_dump($datestring);并得到了他的字符串“24/01/2016”(长度=10)
<?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);     
<?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);     
?>