【发布时间】:2018-01-08 21:21:49
【问题描述】:
我需要验证我的字段的日期格式,因为我的数据库只能访问这种 (Y-m-d) 格式。
因此,我需要能够将任何其他日期格式转换为此格式。 我遇到的一个问题是,根据我在输入日期字段中使用的日期格式更改的浏览器。例如,当前的 firefox 浏览器日期格式是 mm/dd/yyyy,但我需要将其更改为 (Y-m-d)。
我的表格
<div class="form-group">
<label for="DateField">Age: </label>
<input type="date" class="form-control" id='DateField' name="date" placeholder="DD-MM-YYYY" size="10" minlength="6" maxlength="10" required/>
</div>
我希望能够转换任何这些格式 (Y/m/d, d/m/Y, m/d/Y, d-m-Y, m-d-Y, Y.m.d, d.m.Y, m.d.Y) 到 (Y-m-d)
$format = "d-m-Y";
$date = DateTime::createFromFormat($format, $_POST['DateField'])->format('Y-m-d'); //here getting error msg
$date_errors = DateTime::getLastErrors();
if($date_errors['warning_count'] + $date_errors['error_count'] > 0) {
// createFromFormat returns false if the format is invalid;
echo 'Date format is incorrect e.g Y-m-d';
exit();
}
我解决它的一种方法是使用 jquery datepicker,但它在 firefox 57 以后不起作用...(是的,我尝试更改输入字段 type="date" 到那个 type="text" 但仍然不起作用...
<script type="text/javascript">
var datefield = document.createElement("input");
datefield.setAttribute("type", "date");
if (datefield.type !== "date"){ //if browser doesn't support input type="date", load files for jQuery UI Date Picker
document.write('<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/dot-luv/jquery-ui.css " rel="stylesheet" type="text/css" />\n');
document.write('<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous"><\/script>');
}
</script>
<script>
$(function(){
if (!Modernizr.inputtypes.date) { //if browser doesn't support input type="date", initialize date picker widget:
// If not native HTML5 support, fallback to jQuery datePicker
$('input[type=date]').datepicker({
// Consistent format with the HTML5 picker
dateFormat : 'dd-mm-yy',
maxDate: 0
},
// Localization
$.datepicker.regional['it']
);
}
});
</script>
错误消息:在布尔值上调用成员函数 format() 为什么 jquery datepicker 在 firefox 57 中不起作用
【问题讨论】:
-
你考虑过 Moment.js 库吗?它非常简单且非常有用momentjs.com
-
我如何使用它...我只是把它放在我的php文件中?
-
您可能想看看浏览器发送到服务器的内容。尽管显示方式不同,但 chrome 确实以 Y-m-d 格式将其发送为输入类型 date
-
对于 chrome,它的 d-m-Y(13-Jan-20XX) 和 firefox(我正在使用的)它的 mm/dd/yyyy
-
检查开发工具。并检查 (developers.google.com/web/updates/2012/08/…)
标签: javascript php jquery date date-formatting