使用Jquery从输入返回格式化作业

时间:2017-02-01 04:41:50

标签: jquery django date datetime datepicker

我正在尝试格式化我收到的这些日期。我正在使用这样的输入:

$('#newEventStartDate').plusDatePicker();
$('#newEventEndDate').plusDatePicker();

用户提交表单后,我想收集日期并用ajax将它们提交给我的api。 Django要求日期为YYYY-MM-DD格式,但日期选择器使用MM / DD / YYYY格式。如何转换以下日期:

var eventData = {
      startDate: $('#newEventStartDate').val(), //right now it gives MM/DD/YYYY
      endDate: $('#newEventEndDate').val(),
    }

我尝试了这个并且它没有工作:

var eventData = {
      startDate: $('#newEventStartDate').plusDatePicker({ dateFormat: 'YYYY-MM-DD' }).val(),
      endDate: $('#newEventEndDate').plusDatePicker({ dateFormat: 'YYYY-MM-DD' }).val(),
    }

提交给模型的值看起来是正确的。这是我得到的实际错误:

  

django.core.exceptions.ValidationError:["' 02/07 / 2017'值具有无效的日期格式。它必须是YYYY-MM-DD格式。"]

2 个答案:

答案 0 :(得分:1)

在Django中,您可以定义日期输入格式,因此可以将其转换为datetime.date。您可以通过指定

来执行此操作
input_formats=['%Y-%m-%d']
如果您使用的是Django表单,请在您的DateField中

。这是文档:https://docs.djangoproject.com/en/1.10/ref/forms/fields/#datefield

此外,如果您没有使用表单,则可以使用

解析日期

datetime.strptime(your_date, '%Y-%m-%d').date()

答案 1 :(得分:0)

我希望这对你有用:

var d = new Date();

var curr_date = d.getDate();

var curr_month = d.getMonth();

var curr_year = d.getFullYear();

var date=new date(curr_year  + "-" + curr_month + "-" + curr_date );