Jquery datepicker 和 php datetime 不同意?
Posted
技术标签:
【中文标题】Jquery datepicker 和 php datetime 不同意?【英文标题】:Jquery datepicker and php datetime don't agree? 【发布时间】:2019-03-08 09:34:29 【问题描述】:我正在尝试做一些看起来应该很简单的事情,但不知何故无法正确绑定。
用户从jquery datepicker 中选择一个日期,我在其中启用了showWeek
。
$(".datepicker").datepicker(
showWeek: true,
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd'
);
但是,当将生成的日期字符串输入 php 日期时间时,星期不对应,并且是 1 周后的未来。
$start_date = isset($_POST['startdate']) ? $_POST['startdate'] : "";
$start = new DateTime($start_date);
echo $start->format("W");
IE,2018-10-02 在我的日期选择器中显示为第 39 周,但上面从将该日期读回日期时间并格式化为周返回第 40 周的回声。
所以,据我所知,jquery datepicker 和 php datetime 类在默认情况下不同意哪个星期。
有没有办法解决这个问题?
PHP date 表示它符合 ISO-8601,Checking online 为我确认 php 正确,那么如何修复 datepicker 以正确显示?
【问题讨论】:
你使用什么日期选择器,因为那里有很多库 嘿,日期选择器文档 (calculateWeek
) 也声称使用 ISO-8601。我认为 datepicker 存在错误。
@sigma 我添加了一个链接,我使用的是标准的 jquery datepicker 小部件
【参考方案1】:
好的,这是解决方案:根据 jquery ui,您需要指定第一天,而在您的代码中您缺少它:
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Datepicker - Show week of the year</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script>
$( function()
$( "#datepicker" ).datepicker(
showWeek: true,
firstDay: 1,
changeMonth: true,
changeYear: true,
dateFormat: 'yy-mm-dd'
);
);
</script>
</head>
<body>
<p>Date: <input type="text" id="datepicker"></p>
</body>
只需添加 firstDay: 1,一切都会如您所愿。
【讨论】:
漂亮,谢谢。试图理解它为什么会起作用......它将连续显示的第一天设置为星期一,而默认值为星期日。该行显示该行第一天的周数,因此存在差异?我很惊讶 jQuery 没有默认为星期一来避免这个问题! 根据文档和api,您必须设置一周的第一天。星期日为 0,星期一为 1,等等。看看这里:api.jqueryui.com/datepicker/#option-firstDay,这是 jquery 官方页面的解释:datepicker 可以显示一年中的第几周。默认计算遵循 ISO 8601 定义:一周从星期一开始,一年中的第一周包含一年中的第一个星期四。这意味着一年中的某些日子可能会被放入“属于”另一年的几周。看起来很复杂,但最后有一个很好的逻辑:)以上是关于Jquery datepicker 和 php datetime 不同意?的主要内容,如果未能解决你的问题,请参考以下文章
php Multidatepicker Datepicker jquery UI
默认将 PHP 变量解析为 Jquery UI Datepicker
使用 Jquery Datepicker 进行 PHP MYSQL 日期范围搜索
PHP 将PHP date()样式dateFormat转换为等效的jQuery UI datepicker字符串