如何为 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));
我正在使用这个 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));