我是PHP的新手。我有一个日期选择器输入字段的日期字符串。但是当我尝试将日期字符串转换为日期时,我会得到一个意想不到的日期。
示例错误:
make
)包含$datestamp
,则会变为24/01/2016
[错误] 这是PHP代码:
$date = '70/01/01
更新 这是我的日期选择代码
<?php
$datestring = (isset($_POST['datetimepicker1'])) ? $_POST['datetimepicker1'] : "not";
$date = date("y/d/m", strtotime($datestring));
echo $datestring;
echo var_dump($date);
?>
请帮我解决这个问题。这是格式问题吗?我需要将日期插入Oracle数据库。
答案 0 :(得分:1)
根据jQuery,datepicker的默认格式如下:
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();
答案 1 :(得分:1)
使用此代码
main
&GT;
在传递给strtotime函数之前,只需将(&#39; /&#39;)替换为(&#39; - &#39;)。有时(&#39; /&#39;)不起作用。
答案 2 :(得分:1)
请用以下代码替换日期功能。我使用explode分别提取年,月和日期,将其传递给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);
?>