需要将新日期与datepicker

时间:2015-12-22 22:30:49

标签: javascript date datetime datepicker

我在javascript中与日期挣扎。我将比较一些日期输入,但用户和用户输入的日期取决于信息的列表。我的问题是比较系统日期和日期选择日期。系统日期显示“2015年12月22日00:00:00 GMT + 0000(GMT)”日期选择器显示22/12/2015的格式。如何更改系统日期以匹配日期选择器格式,以便我可以比较日期?我想在没有jQuery的情况下这样做(我知道日期选择器违背了这一点)。

这里我的代码到目前为止的日期基本上只是将时间设置为00:00:00。

var today = new Date();
today.setHours(0,0,0,0);

var yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
yesterday.setHours(0,0,0,0);

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
tomorrow.setHours(0,0,0,0);

console.log(today);


var dateTask = document.getElementById("date").value;

    console.log(dateTask);

4 个答案:

答案 0 :(得分:1)

您必须将用户输入解析为Date对象。 22/12/2015不是Date构造函数的有效日期字符串,因此您必须自己解析它。 你可以这样做:

var dateSplit= document.getElementById("date").value.split('/'),
    dateTask = new Date(dateSplit[2],dateSplit[1]-1,dateSplit[0], 0, 0, 0, 0);

注意:此代码非常基本,在解析真实用户输入时需要增强。

之后你可以比较这样的日期:

today.getTime() === dateTask.getTime()

答案 1 :(得分:0)

用str.split(“/”)分割字符串;并以此处指出的方式之一构造Date。

https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Date

小心月份是0-11

答案 2 :(得分:0)

如果你想要一个日期选择器,你实际上并不需要JQuery,但这不是重点。我认为最好的方法是使用Date.parse将用户输入解析为日期。然后,您可以将它们比作unix epoch timestamps



"use strict";
var datePicker = document.querySelector('#date');
datePicker.addEventListener('change',function(){

  var udate = Date.parse(this.value);
  var sysdate = Date.now();
  document.querySelector('#d').innerText = udate;
  document.querySelector('#sys').innerText = sysdate;

});

form {
  position: relative;
}
label, input, output {
  float: left;
}
label {
  clear: left;
  width: 128px;
}

<form>
  <label for="date">user input</label>
  <input type="date" name="date" id="date">
  <label for="d">user date</label>
  <output id="d" name="d" for="date"></output>
  <label for="sys">system date</label>
  <output id="sys" name="sys"></output>
</form>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

const datePicker = document.querySelector("#date");
const todayDate = new Date().toLocaleDateString();
const datePickerValue = new Date(datePicker.value).toLocaleDateString();

datePicker.addEventListener("change", () => {
  if (datePickerValue === todayDate) {
    alert("");
  } else {
    alert("");
  }
});