Android模拟器的javascript日期问题

标签 javascript jquery android date android-emulator

我正在尝试在 Android 模拟器浏览器上显示日期。当前代码在我的 PC Web 浏览器上运行良好,但在 Android 模拟器 Web 浏览器上无法正常运行。这是我为此目的使用的两个函数。

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 模拟器浏览器上,它显示“未定义”,其中 ti 应该出现当天的名称,例如“周一、周二、周三”等。

如何解决这个问题?

过去我也遇到过同样的问题,然后通过以下功能解决了。我从互联网上的某个地方得到了这个功能。但现在它在这里不起作用我不知道为什么。

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;
};

最佳答案

问题似乎是您在定义函数之前就使用了该函数。这就是您收到未定义错误的原因。尝试更改顺序,以便最后计算该函数。

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));
        }
dayOfWeek('Sun Jan 08 2012 02:00:00 GMT+0200 (FLE Standard Time)');

关于Android模拟器的javascript日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781136/

相关文章:

android - android布局文件可以放到不同的文件夹或组中吗

android - getDrawingCache() 总是返回 null

javascript - Jquery移动商店页面缺失: placeholder = "Password (required)"

javascript - 我需要制作一个插件,该插件将让用户选择生效

javascript - 使用 jquery 过滤 XML 结果

java - 无法显示生日提醒

javascript - Jquery 验证 - 领域焦点

javascript - 如何使用特定 div 使用最接近的函数

javascript - Firefox 的 forEachFeatureatPixel 速度非常慢

javascript - 图片完全加载后如何获取图片高度?