如何为 PHP 格式化 Bootstrap DatePicker

How to Format the Bootstrap DatePicker for PHP

我正在使用这个 Bootstrap DatePicker:下面的代码

<input class="datepicker" name="date">

<script> //date picker js
  $(document).ready(function() {  
      $('.datepicker').datepicker({
         todayHighlight: true,
         "autoclose": true,
      });
  });   
</script>

我在我的 PHP 中捕获了它:

$date = $_POST['date'];

问题是 DatePicker 在我的 $date 变量中需要格式 dd/mm/yyyy 时给我 yyyy-mm-dd。我该如何重新格式化?

试试这个页面 http://php.net/manual/en/datetime.createfromformat.php。将字符串转换为日期对象并输出为格式化日期

你想要 Y-m-d。

我确定您可以在日期选择器中进行设置,但在 PHP 中您可以使用:

$date = DateTime::createFromFormat("d-m-Y", $_POST['date'])->format('Y-m-d');

并且来自 Bootstrap DatePicker 文档: http://bootstrap-datepicker.readthedocs.org/en/latest/options.html#format

****** 解决方案 ******

为了解决这个问题,我看到变量 'date' 被格式化为 dd/mm/yyyy 并且是一个字符串。我能够解析它并以正确的格式重建为日期。

list($m,$d,$y) = explode("/",$_POST['date']);
$timestamp = mktime(0,0,0,$m,$d,$y);
$date = date("Y-m-d",$timestamp);

*注意 - 我还必须在查询中用单引号将 $date 变量括起来:

$sql = "INSERT INTO tableName (..., date, ...)
        VALUES (..., '".$date."', ...)";

您可以轻松调整 以满足您的需要。沿着这条线的东西应该可以解决你的问题:

$originalDate = $_POST['date'];
$newDate = date("Y-m-d", strtotime($originalDate));