Я пытаюсь отобразить дату в браузере эмулятора Android.Текущий код прекрасно работает в веб-браузере на моем ПК, но не работает должным образом в веб-браузере эмулятора Android.Вот две мои функции, которые я использую для этой цели.
dayOfWeek('Sun Jan 08 2012 02:00:00 GMT+0200 (FLE Standard Time)');
dayOfWeek = function (d) {
var dayNames = new Array('SUN','MON','TUE','WED','THU','FRI','SAT');
var day = toTimestamp(d);
//alert(day);
return dayNames[day.getDay()];
}
toTimestamp = function (strDate){
return new Date(Date.parse(strDate));
}
Я передаю дату в этом формате «Sun Jan 08 2012 02:00:00 GMT + 0200 (FLE Standard Time)», которую вытакже можно увидеть в приведенном выше коде.
ПРОБЛЕМА: проблема в браузере эмулятора Android, он отображает «неопределенное», где должно отображаться название дня, например, «MON, TUE, WED» и т. д.
Как я могу решить эту проблему?
В прошлом у меня была такая же проблема, тогда она была решена с помощью следующей функции.Я получил эту функцию где-то в Интернете.Но сейчас это не работает здесь, я не знаю, почему.
function relative_time(date_str) {
if (!date_str) {return;}
date_str = $.trim(date_str);
date_str = date_str.replace(/\.\d\d\d+/,""); // remove the milliseconds
date_str = date_str.replace(/-/,"/").replace(/-/,"/"); //substitute - with /
date_str = date_str.replace(/T/," ").replace(/Z/," UTC"); //remove T and substitute Z with UTC
date_str = date_str.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2"); // +08:00 -> +0800
var parsed_date = new Date(date_str);
var relative_to = (arguments.length > 1) ? arguments[1] : new Date(); //defines relative to what ..default is now
var delta = parseInt((relative_to.getTime()-parsed_date)/1000);
delta=(delta<2)?2:delta;
var r = '';
if (delta < 60) {
r = delta + ' seconds ago';
} else if(delta < 120) {
r = 'a minute ago';
} else if(delta < (45*60)) {
r = (parseInt(delta / 60, 10)).toString() + ' minutes ago';
} else if(delta < (2*60*60)) {
r = 'an hour ago';
} else if(delta < (24*60*60)) {
r = '' + (parseInt(delta / 3600, 10)).toString() + ' hours ago';
} else if(delta < (48*60*60)) {
r = 'a day ago';
} else {
r = (parseInt(delta / 86400, 10)).toString() + ' days ago';
}
return 'about ' + r;
};