直接上代码,其实就是围绕毫秒数做一些运算。
演示见:这里。
function WeekDate() {
/**
* 基准时间,所有计算以此为基础
*/
var _calcDate = new Date();
/**
* 一天的豪秒数
*/
var _day = 1000 * 60 * 60 * 24;
this.getThisWeekDate = getThisWeekDate;
this.getPrevWeekDate = getPrevWeekDate;
this.getNextWeekDate = getNextWeekDate;
this.wrapDate = wrapDate;
this.getDayMillisecond = getDayMillisecond;
/**
* 取上周开始至上周结束日期
*
* @return Array [0]上周第一天 [1]上周最后一天
*/
function getPrevWeekDate() {
// 取上周结束日期
var lastDay = new Date(_calcDate - (_calcDate.getDay()) * _day);
// 取上周开始日期
var firstDay = new Date((lastDay * 1) - 6 * _day);
// 更新基准时间
_calcDate = firstDay;
return [wrapDate(firstDay), wrapDate(lastDay)];
}
/**
* 取下周开始至下周结束日期
*
* @return Array [0]上周第一天 [1]上周最后一天
*/
function getNextWeekDate() {
// 取下周开始日期
var firstDay = new Date((_calcDate * 1) + (6 - _calcDate.getDay() + 2) * _day);
// 取下周结束日期
var lastDay = new Date((firstDay * 1) + 6 * _day);
// 更新基准时间
_calcDate = firstDay;
return [wrapDate(firstDay), wrapDate(lastDay)];
}
/**
* 取本周开始至本周结束日期
*
* @return Array [0]本周第一天 [1]本周最后一天
*/
function getThisWeekDate() {
_calcDate = new Date();
// 第一天日期
var firstDay = new Date(_calcDate - (_calcDate.getDay() - 1) * _day);
// 最后一天日期
var lastDay = new Date((firstDay * 1) + 6 * _day);
return [wrapDate(firstDay), wrapDate(lastDay)];
}
function wrapDate($date) {
var m = $date.getMonth() + 1;
m = m < 10 ? "0" + m : m;
var d = $date.getDate();
d = d < 10 ? "0" + d : d;
return $date.getFullYear() + "-" + m + "-" + d;
}
function getDayMillisecond() {
return _day;
}
}
//var weekDate = new WeekDate();
//alert(weekDate.getNextWeekDate());
//alert(weekDate.getNextWeekDate());
//alert(weekDate.getThisWeekDate());
//alert(weekDate.getPrevWeekDate());
//alert(weekDate.getPrevWeekDate());
IE下xmlhttp.responseText可以返回正确数据,xmlhttp.responseXML返回object,但xmlhttp.responseXML.documentElement却等于null。
如果在服务端设置了ContentType=text/xml还出现此问题,将<?xml version="1.0" encoding="gb2312"?>移到文件文件第一行试试。IE下返回数据头部有空行,也可能造成xmlhttp.responseXML.documentElement = null。
调试了俺几十分钟,最近在玩android,其它方面生疏了很多。
最近要做一个画图的小东东,找到一个很强大的开源组件SpringGraph。
quote:
用Flex 2.0开发的开源图形可视化组件——SpringGraph,它通过网络连接图的形式来表现事物间的联系,支持拖拽、放缩、自动排列、双击下钻等特性。
Demo:(在demo里点右键可以选择查看他的源代码)
不过作者主页貌似被GFW墙了,翻墙过去下载了源代码,放出来方便大家。:-)
原来在firefox2以下版本中写XMLHttpRequest读取时,同步和异步请求都是onreadystatechange来设置回调函数,可是到firefox3中,同步请求通过设置onreadystatechange来判断数据是否读取貌似完成没有作用,换回下面方法就没问题了。
在 firefox2 以下版本中,xmlhttp同步/异步读取数据,可以使用下面方法来监测数据是否读取完毕:
transport.onreadystatechange = function () {
if (transport.readyState == 4) {
if (transport.status == 200) {
// do sth
} else {
// do sth
}
}
}
在 firefox3 中测试时,xmlhttp同步读取数据,设置onreadystatechange不会产生回调。
需要在send方法后这样读取:
transport.send(null);
if (transport.status == 200) {
// do sth
} else {
// do sth
}
在修改这个日志编辑器时碰到的问题,IE中innerHTML插入html代码如果混杂有css样式表,当css样式插入在元素最前面时,IE会忽略这个样式。
演示(下面代码在IE中字体将是黑色,而firefox中会正确的显示为红色):
<HTML>
<DIV id=test></DIV>
<SCRIPT>
document.getElementById("test").innerHTML += "<style>b{color:red}</style><b>hello!World!!!</b>";
</SCRIPT>
<HTML>
其它参考:PJHome的使用innerHTML插入样式。不过感觉这篇文章中说的不是很正确。
文中提到“IE对这里的顺序要严格要求。必须先插入html内容然后再插入<style>样式才生效。这样test这个div 里就会出现一个红色的 hello!World! 但是如果把<style>放到<b>前头,就被IE无视了。”
感觉上说的是CSS样式表需要放在使用这个样式表的元素前面。而实际上,插入内容时,只要有任意一个其它html元素就行了,比如br,pre,div等。:)