Bootstrap-weekpicker 插件在表单中发布日期格式
Posted
技术标签:
【中文标题】Bootstrap-weekpicker 插件在表单中发布日期格式【英文标题】:Bootstrap-weekpicker plugin post date format in form 【发布时间】:2021-11-29 05:08:36 【问题描述】:我是编码新手,很抱歉我的问题很简单。
我正在使用插件 Week-Picker-Bootstrap-4。我允许我打开一个呼叫者并选择一个星期。 bootstrap-weekpicker.min.js 在选择日期Week 41, 2021
后创建一个带有以下输出的html 输入表单。这对我来说没问题,但我需要使用 post 将此值发送到我的服务器。但现在它将发布Week 41, 2021
。有没有办法保持值Week 41, 2021
存在以供用户查看,但以这种格式format :'yyyy-mm-dd'
将原始选定日期作为值发布到我的服务器?我找不到有关如何执行此操作的答案。
<div class="row">
<div class="col-xs-12 col-md-12">Week / Year</div>
<div class="col-xs-12 col-md-12">
<div class="col-auto">
<div class="input-group date align-items-center">
<div class="input-group date align-items-center">
<div id="planning_weekpick"></div>
</div></div>
</div></div>
</div>
//Bootstrap css and jquery are inlcuded to.
<link rel="stylesheet" href="https://cdn.rawgit.com/pingcheng/bootstrap4-datetimepicker/master/build/css/bootstrap-datetimepicker.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js" type="text/javascript"></script>
<script src="https://cdn.rawgit.com/pingcheng/bootstrap4-datetimepicker/master/build/js/bootstrap-datetimepicker.min.js" type="text/javascript" ></script>
<script src="../js/bootstrap-weekpicker.min.js" type="text/javascript" ></script>
<script type="text/javascript">
$(function ()
$('#planning_weekpick').weekpicker();
);
</script>
【问题讨论】:
【参考方案1】:我认为您可以使用this 解决方案。是setISODate函数。
$date = new DateTime();
$date->setISODate($year, $weekNumber);
echo $date->format('Y.m.d');
有几种方法可以从Week 41, 2021
字符串中提取年份和周数。
例如:
$dateString = 'Week 41, 2021';
$parts = explode(' ', $dateString);
$weekNumber = (int) rtrim($parts[1], ',');
$year = (int) $parts[2];
更新:
我可以建议另一种方法来编写您的 normalizeMonth 函数:
function normalizeMonth(int $monthNumber)
$months = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];
return $months[$monthNumber - 1]; // -1 because array indexes start with 0.
【讨论】:
感谢您的反应。问题是这种格式没有月份。这就是为什么我正在寻找一种将帖子值设为原始日期的方法。从那里我可以使用 php 提取月、周、日和年。 因此,在 php 中从“2021 年第 41 周”获取月、年、日、周值的方法也是我的答案。但我只看到从中获取星期和年份的方法,我知道如何从 php 中的原始日期 yyyy-mm-dd 获取所有内容。【参考方案2】:感谢@shanginn 的代码和文档建议。我能够创建以下代码来获得我需要的东西!非常感谢!
$dateString = $planning_week;
$parts = explode(' ', $dateString);
$weekNumber = (int) rtrim($parts[1], ',');
$year = (int) $parts[2];
$weekyear = $weekNumber. '-' . $year;
$date = new DateTime();
$date->setISODate($year, $weekNumber);
$createddate = $date->format('Y-m-d');
$dateplanning = new DateTime($createddate);
$monthnumber = $dateplanning->format("m");
$yearandmonth = $year . '-' . $monthnumber;
function normalizeMonth($monthnumber)
switch($monthnumber)
case "01": return "Januari";
case "02": return "Februari";
case "03": return "Maart";
case "04": return "April";
case "05": return "Mei";
case "06": return "Juni";
case "07": return "Juli";
case "08": return "Augustus";
case "09": return "September";
case "10": return "Oktober";
case "11": return "November";
case "12": return "December";
return $monthnumber;
$month = normalizeMonth($monthnumber);
【讨论】:
最好将变量命名为camelCase 或snake_case 以提高可读性。还有另一种写函数 normalizeMonth() 的方法,请检查我的答案,我会用函数更新它。 感谢您的提示!您制作的月份函数,是只返回有问题的月份还是返回所有月份?我只需要将当前发布的月份转换为 tekst 版本。 它只会返回当前月份。请查看array documentation 以更好地了解该功能:) 好的,很好!你能解释一下为什么以你的方式编写函数更好吗? 我没有说它更好。但总的来说,如果您可以避免if
s 或switch
es,您应该这样做。它更容易理解并且工作更快。而且更短。但我的函数依赖于 $monthNumber
介于 1 和 12 之间这一事实,如果您使用 ->format('m')
,这是正确的,但并非总是如此。以上是关于Bootstrap-weekpicker 插件在表单中发布日期格式的主要内容,如果未能解决你的问题,请参考以下文章
Jquery datatable 在从简单的 Web 服务调用 Web 方法时未在表中显示任何数据