【发布时间】:2021-11-29 06:29:08
【问题描述】:
我的网站上有一个date range picker。
当用户输入日期和时间范围时,我想以startDate 和endDate 的形式分别发送
日期范围选择器代码:
$('input[name="datetimes"]').daterangepicker({
timePicker: true,
timePickerIncrement: 5,
startDate: moment().startOf('hour'),
endDate: moment().startOf('hour').add(32, 'hour'),
locale: {
format: 'YYYY-MM-DD hh:mm'
},
opens: 'center',
drops: 'auto'
});
这是我尝试过的:
$('#formid').submit(function(e) {
e.preventDefault();
let startDate = ($('#datetimes').data('daterangepicker').startDate).format('YYYY-MM-DD hh:mm');
let endDate = ($('#datetimes').data('daterangepicker').endDate).format('YYYY-MM-DD hh:mm');
$(this).append('<input type="hidden" name="start_date" value='+startDate+' /> ');
$(this).append('<input type="hidden" name="end_date" value='+endDate+' /> ');
this.submit();
});
在this.submit(); 之前,我做了console.log(startDate),这就是我得到的:
我正在获取日期和时间(如预期的那样),但是如果我尝试在视图(django 后端)中执行print(request.POST),这就是我得到的:
不知何故,在POST 期间,HH:mm 消失了。
如何在 POST 期间保留 hh:mm 的值?
更新:
views.py
def add_new_task(request):
context = {}
context['nbar'] = 'index'
if request.method == 'POST':
print(request.POST)
return render(request, 'index.html', context)
models.py
class ToDoList(models.Model):
title = models.CharField(max_length=60)
description = models.TextField()
start_date = models.DateTimeField()
end_date = models.DateTimeField()
user = models.ForeignKey(
User,
null=True,
blank=True,
on_delete=models.SET_NULL,
)
【问题讨论】:
-
start_date 是 DateTimeField() 对吗?也分享您的观点和模型。
-
没错。添加了视图和模型。谢谢!
-
通过在浏览器的开发者工具中检查“网络”选项卡中的 POST 请求数据,确保 js 部分发送完整日期
-
我看不出有什么奇怪的。如果我硬编码日期,例如
2021-11-30 11:00,我可以在后端接收它,但如果我使用 startDate 和 endDate 数据,小时和分钟就会丢失。 -
似乎是一时的问题?
标签: javascript django daterangepicker