这是我的代码,
collections.Counter
在此加入日期和birthdayDate采用d-m-y格式。所以我使用拆分更改为y-m-d格式并比较这两个日期。但它没有像我预期的那样发挥作用。
这有什么不对吗?
答案 0 :(得分:1)
你的脚本几乎可以运作。 Date()期望参数为Integers。所以你应该使用parseInt来使用前导零来强制转换字符串。
更多:你确定,Joindate应该早于Birthdate吗?
var joiningDate = '2018-03-08';
var birthdayDate = '1960-01-01';
var date1 = joiningDate.split('-');
var date2 = birthdayDate.split('-');
var jd = new Date(parseInt(date1[0]), parseInt(date1[1]) - 1, parseInt(date1[2]));
var bd = new Date(parseInt(date2[0]), parseInt(date2[1]) - 1, parseInt(date2[2]));
if (jd <= bd) {
console.log("Join Date is earlier");
}
else {
console.log("Birth Date is earlier");
}
&#13;
但您也可以直接将日期字符串传递给Date对象:
var jd = new Date(joiningDate);
请参阅此处以获取日期对象的说明:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
答案 1 :(得分:0)
将时间部分设为0
jd.setHours( 0, 0, 0, 0 );
bd.setHours( 0, 0, 0, 0 );
将条件更改为
if (jd.getTime() <= bd.getTime()) {
修改强>
原始比较应该按原样运作
if (jd <= bd) {
<强>演示强>
var joiningDate = "05-02-2018";
var birthDate = "08-01-2016";
var fnToDate = str => {
var items = str.split( "-" );
var date = new Date( items[2], items[1] - 1, items[0] );
date.setHours( 0, 0, 0, 0 );
return date;
};
console.log( fnToDate( joiningDate ) );
console.log( fnToDate( birthDate ) );
console.log( fnToDate( joiningDate ) < fnToDate( birthDate ) );