我已经坚持了很长一段时间,如果可能的话,我会很感激。
基本上我从API以yyyy-mm-dd格式收到日期。除此之外,我希望显示工作日。以下是相关代码:
// jsonDate is in the format yyyy-mm-dd
var splitDate = jsonDate.split("-");
var joinedDate = splitDate.join(",");
var myDate = new Date(joinedDate);
var weekday=new Array(7);
weekday[0]="Sun";
weekday[1]="Mon";
weekday[2]="Tue";
weekday[3]="Wed";
weekday[4]="Thu";
weekday[5]="Fri";
weekday[6]="Sat";
var dayOfTheWeek = weekday[myDate.getDay()];
一切都在Firefox中运行,但在IE8中“dayOfTheWeek”未定义。当我登录时,IE Developer工具还将“myDate”显示为“NaN”。
任何帮助都会非常感激。
答案 0 :(得分:3)
以这种方式创建日期:
var myDate = new Date(splitDate[0],splitDate[1]-1,splitDate[2]);
Date期望将部分作为单个参数,而不是格式化字符串。
还有一个传递字符串的选项,例如:
MonthAsString Day , year hours:minutes:seconds
但我认为你最好不要使用它,它可能取决于javascript-version,哪种格式可以接受。
答案 1 :(得分:0)
function dstring(str){
//yyyy-mm-dd
str= str.split(/\D+/);
str[1]-= 1;
try{
var d= new Date();
d.setHours(0,0,0,0);
d.setFullYear.apply(d, str);
}
catch(er){
return 'Bad date-'+str;
}
return d;
}
<强> dstring( '2010-10-21')强>
/* returned value: (Date)
Thu Oct 21 2010 00:00:00 GMT-0400 (Eastern Daylight Time)
*/