Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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 如何将MM/DD/YYYY转换为YYYY-MM-DD?_Php_Jquery_Date - Fatal编程技术网

Php 如何将MM/DD/YYYY转换为YYYY-MM-DD?

Php 如何将MM/DD/YYYY转换为YYYY-MM-DD?,php,jquery,date,Php,Jquery,Date,我有一个jquery日历,它将输入值设置为MM/DD/YYYY 如何转换它,以便我的数据库列(日期)能够正确地接受它 编辑 戈登是对的——他的链接让我找到了这个答案 $mysql_date = date('Y-m-d H:i:s', strtotime($user_date)); 您想在PHP中实现这一点,对吗 使用爆炸 $christmas = "12/25/2010"; $parts = explode('/',$christmas); $yyyy_mm_dd = $parts[2] .

我有一个jquery日历,它将输入值设置为MM/DD/YYYY

如何转换它,以便我的数据库列(日期)能够正确地接受它

编辑

戈登是对的——他的链接让我找到了这个答案

$mysql_date = date('Y-m-d H:i:s', strtotime($user_date));

您想在PHP中实现这一点,对吗

  • 使用爆炸

    $christmas = "12/25/2010";
    $parts = explode('/',$christmas);
    $yyyy_mm_dd = $parts[2] . '-' . $parts[0] . '-' . $parts[1]
    
  • 使用
    strftime
    将其解析为时间戳,然后使用
    strftime
    将其格式化为所需格式


  • 我们需要更多信息吗?

    1) 将什么脚本插入到数据库中?我假设是PHP

    2) 此外,我们还需要知道您是如何存储日期以及以何种格式存储的

    我的解决办法是:

    $dates = preg_split('/\//',$_POST['date']);
    
    $month = $dates[0];
    $day = $dates[1];
    $year = $dates[2];
    
    $finalDate = $year.'-'.$month.'-'.$day;
    

    我建议使用
    strotime()
    函数,然后使用
    date()
    。通过它,您可以转换任何格式的日期

    $unix_time_stamp = strtotime($mm_dd_yyyy);
    $yyyy_mm_dd = date(Y/m/d,$unix_timestamp);
    

    我希望我的答案是有用的:)

    或者,您可以不使用
    分解来执行此操作:

    $date = "12/25/2010";
    $mysql_date = date('Y-m-d', strtotime($date));
    

    现在,您可以使用
    $mysql\u date
    插入数据库。

    如果只需要一行,请尝试以下操作:

    $time = "07/12/2010";
    
    $new_time = preg_replace("!([01][0-9])/([0-9]{2})/([0-9]{4})!", "$3-$1-$2", $time);
    
    var_dump($time);
    var_dump($new_time);
    
    试试这个:

    $date = explode('/', '16/06/2015');
    
    $new  = date('Y-m-d H:i:s', strtotime(implode('-', array_reverse($date))));
    
    返回日期:2015-06-15 00:00:00


    希望这有帮助

    请尝试以下代码

    <?php
    $date = "10/24/2014";
    $date = DateTime::createFromFormat("m/d/Y" , $date);
    echo $date->format('Y-m-d');
    ?>
    
    
    
    真的没有这样的选项吗?我很确定大多数jQuery插件都可以配置,甚至可以配置它们的日期格式。另一个选项是保持原样,让DB用SQL语句进行转换:插入到表中(datecol)值(date_格式($YOURJQUERYDATE,“%m/%d/%Y”);重要的是要注意日期中对
    -
    /
    的不同解释。如果你使用
    -
    php将确定它是DD-MM,如果你使用
    /
    php将确定它是MM-DD。只是@Devon注释上的一个注释,我不知道php是这样做的,在我看来,这确实是一种不好的做法,因为它会导致错误,因为有些地方(比如巴西)的日期格式是错误的“DD/MM/YYYY”,并且由于使用了
    /
    ,PHP将错误地将其确定为“MM-DD”。@MuriloGarcia这实际上不是PHP的错误。strotime()是一个快捷方式/帮助功能,如果您决定使用快捷方式,您需要知道它接受的格式。它不可能支持所有可能的日期格式的输入,因为不同的格式冲突。在美国,是MM/DD/YYYY,因此strotime不可能知道您何时输入2017年12月10日,即12月10日rsus 10月12日…您可以使用DateTime::createFromFormat()从任何可能的格式创建日期,也可以遵循Strotime接受的格式。我喜欢这个答案,因为它更灵活,因为PHP不需要猜测任何内容,所以您将日期格式从(m/d/Y)传递到(Y-m-d).A
    preg\u
    在模式中使用一个单独的静态字符的函数调用效率是可以避免的。我不建议任何人出于任何原因在任何项目中实现此技术。有更好的方法。
    <?php
    $date = "10/24/2014";
    $date = DateTime::createFromFormat("m/d/Y" , $date);
    echo $date->format('Y-m-d');
    ?>