我在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);
答案 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;
答案 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("");
}
});