将两行格式为“ 03 November 2017 04:17”的行传递给“ testDateTime”函数。 您需要将字符串转换为日期,然后进行比较。要获取更多信息,请获取星期几。.星期日-星期六:0-6
样本输入:
1909年10月19日10:27
1909年3月28日00:59
样本输出: 星期二
function testDateTime(a, b){
var arr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var aa = Date.parse(a);
var bb = Date.parse(b);
var i = ( aa > bb ? a.getDay() : b.getDay());
return arr[i];
}
||
function testDateTime(a, b) {
var arr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var aa = Date.parse(a);
var bb = Date.parse(b);
var i = ( aa > bb ? aa.getDay(a) : bb.getDay(b));
return arr[i];
}
样本输入: 1909年10月19日10:27 1909年3月28日00:59
样本输出: 星期二
错误:我没有定义
答案 0 :(得分:0)
从Mozilla文档中获取Date.parse():
Date.parse()方法解析日期的字符串表示形式,然后 返回自UTC 1970年1月1日00:00:00以来的毫秒数 或NaN(如果字符串无法识别,或者在某些情况下包含 非法的日期值(例如2015-02-31)。
因此,上面的代码永远无法工作,因为您正在对字符串变量调用.getDate()。您只能在Date对象上调用它。在第一个示例中,您尝试调用a.getDate()
,其中a
是“ 1909年10月19日10:27”(字符串)。
在第二个示例中,您在aa
上调用.getDate(),这是Date.parse()
的结果。如上所述,.getDate()函数返回一个字符串,因此效果是相同的-在字符串变量上调用不存在的方法。
尝试以下方法:
function testDateTime(a, b){
var arr = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var aa = new Date(Date.parse(a));
var bb = new Date(Date.parse(b));
var i = ( aa > bb ? aa.getDay() : bb.getDay());
return arr[i];
}
console.log(testDateTime('19 October 1909 10:27', '28 March 1909 00:59'));
输出:
Tuesday