这是我找到的一个js做的日历,不知道是不是你要的,里面有包含时间,其实在日历里面加时间也是比较简单的,只要调用DATE的方法就可以了,希望对你有用。下面是代码段,效果图附上。
<html>
<head>
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
//定义月历函数
function calendar() {
var today = new Date() //创建日期对象
year = today.getYear() //读取年份
thisDay = today.getDate() //读取当前日
//创建每月天数数组
var monthDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
//如果是闰年,2月份的天数为29天
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) monthDays[1] = 29
daysOfCurrentMonth = monthDays[today.getMonth()] //从每月天数数组中读取当月的天数
firstDay = today//复制日期对象
firstDay.setDate(1) //设置日期对象firstDay的日为1号
startDay = firstDay.getDay() //确定当月第一天是星期几
//定义周日和月份中文名数组
var dayNames = new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六")
var monthNames = new Array("1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月")
//创建日期对象
var newDate = new Date()
//创建表格
document.write("<TABLE BORDER='0' CELLSPACING='0' CELLPADDING='2' ALIGN='CENTER' BGCOLOR='#0080FF'>")
document.write("<TR><TD><table border='0' cellspacing='1' cellpadding='2' bgcolor='#88FF99'>")
document.write("<TR><th colspan='7' bgcolor='#C8E3FF'>")
//显示当前日期和周日
document.writeln("<FONT STYLE='font-size:9ptColor:#FF0000'>" + newDate.getYear() + "年" + monthNames[newDate.getMonth()] + " " + newDate.getDate() + "日 " + dayNames[newDate.getDay()] + "</FONT>")
//显示月历表头
document.writeln("</TH></TR><TR><TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9ptColor:White'>日</FONT></TH>")
document.writeln("<th bgcolor='#0080FF'><FONT STYLE='font-size:9ptColor:White'>一</FONT></TH>")
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9ptColor:White'>二</FONT></TH>")
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9ptColor:White'>三</FONT></TH>")
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9ptColor:White'>四</FONT></TH>")
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9ptColor:White'>五</FONT></TH>")
document.writeln("<TH BGCOLOR='#0080FF'><FONT STYLE='font-size:9ptColor:White'>六</FONT></TH>")
document.writeln("</TR><TR>")
//显示每月前面的"空日"
column = 0
for (i=0 i<startDay i++) {
document.writeln(" <TD><FONT STYLE='font-size:9pt'> </FONT></TD>")
column++
}
//如果是当前日就突出显示(红色),否则正常显示(黑色)
for (i=1 i<=daysOfCurrentMonth i++) {
if (i == thisDay) {
document.writeln("</TD><TD ALIGN='CENTER'><FONT STYLE='font-size:9ptColor:#ff0000'><B>")
}
else {
document.writeln("</TD><TD BGCOLOR='#88FF99' ALIGN='CENTER'><FONT STYLE='font-size:9ptfont-family:Arialfont-weight:boldColor:#000000'>")
}
document.writeln(i)
if (i == thisDay) document.writeln("</FONT></TD>")
column++
if (column == 7) {
document.writeln("<TR>")
column = 0
}
}
document.writeln("<TR><TD COLSPAN='7' ALIGN='CENTER' VALIGN='TOP' BGCOLOR='#0080FF'>")
document.writeln("<FORM NAME='time' onSubmit='0'><FONT STYLE='font-size:9ptColor:#ffffff'>")
//显示当前时间
document.writeln("当前时间:<INPUT TYPE='Text' NAME='textbox' ALIGN='TOP'></FONT></TD></TR></TABLE>")
document.writeln("</TD></TR></TABLE></FORM>")
}
</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
//初始化控制变量
var timerID = null
var timerRunning = false
//定义时间显示函数
function stoptime (){
if(timerRunning)
clearTimeout(timerID)
timerRunning = false}
//定义显示时间函数
function showtime () {
var newDate = new Date()
var hours = newDate.getHours()
var minutes = newDate.getMinutes()
var seconds = newDate.getSeconds()
var timeValue = " " + ((hours >12) ? hours -12 :hours)
timeValue += ((minutes < 10) ? ":0" : ":") + minutes
timeValue += ((seconds < 10) ? ":0" : ":") + seconds
timeValue += (hours >= 12) ? " 下午 " : " 上午 "
document.time.textbox.value = timeValue
timerID = setTimeout("showtime()",1000)//设置超时,使时间动态显示
timerRunning = true}
//显示当前时间
function starttime () {
stoptime()
showtime()}
</SCRIPT>
</head>
<BODY onLoad="starttime()" TEXT="#000000" TOPMARGIN="0">
<script language="JavaScript" type="text/javascript">
calendar() //显示月历
</script>
</BODY>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/htmlcharset=utf-8">
<title>JavaScript Sample</title>
<style type="text/css">
div #dataTextContainer
{
border:1px #A5ACB2 solid
width: 100px
height: 19px
text-align: right
float:left
}
div #dataTextContainer input
{
border-width: 0px
border-style: none
border-color: transparent
width: 68px
height: 14px
font-size: 12px
text-align: left
}
div #dataTextContainer button
{
width: 22px
height: 19px
margin: 0px
padding:0px
text-align: center
}
div #calendarContainer
{
width: 200px
height: 100px
z-index: 10000
font-size: 13px
}
</style>
<script type="text/javascript" src="inputDate.js"></script>
</head>
<body>
<div id = "dataTextContainer">
<input name="dataText" id="dateText" type="text" onfocus="javascript:getCurrentDay()"/>
<button onclick="javascript:displayCalendar()">
<img src="rili.jpg" width="15" height="12">
</button>
</div>
<div id="calendarContainer"></div>
</body>
</html> function getCurrentDay()
{
var newDate = new Date
var odate = document.getElementById("dateText")
var date_year = newDate.getFullYear()
var date_month = newDate.getMonth() + 1
var date_today = newDate.getDate()
odate.value = date_year+"-"+date_month+"-"+date_today
}
function displayCalendar()
{
drawCalendar()
}
function closeCalendar()
{
var oCalendarContainer = document.getElementById("calendarContainer")
oCalendarContainer.innerHTML = ""
}
function drawCalendar(sYear,sMonth)
{
var newDate
if(arguments[0] == null || arguments[1] == null)
{
newDate = new Date()
}
else
{
newDate = new Date(sYear,sMonth - 1)
}
var date_year = newDate.getFullYear()
var date_month = newDate.getMonth() + 1
var date_today = newDate.getDate()
var date_day = newDate.getDay()
var nextMonth = date_month + 1
var nextYear = date_year
var prevMonth = date_month - 1
var prevYear = date_year
if(sMonth == 12)
{
nextMonth = 1
nextYear = date_year + 1
}
if(sMonth == 1)
{
prevMonth = 12
prevYear = date_year - 1
}
var calendarTable = ""
calendarTable += '<table width="200" border="0" cellpadding="0" cellspacing="0" style="background-color:#0066FFtext-align:center">'
calendarTable += ' <tr style="background-color:#339999">'
//向前翻年
calendarTable += '<td colspan="2" onclick="javascript:drawCalendar('+(prevYear - 1)+','+prevMonth+')"'+
' style="cursor:pointerbackground-color:#FF6600"><<<</td>'
//向前翻月
calendarTable += '<td colspan="2" onclick="javascript:drawCalendar('+prevYear+','+prevMonth+')"'+
' style="cursor:pointerbackground-color:#FF6600"><<</td>'
//向后翻月
calendarTable += '<td colspan="2" onclick="javascript:drawCalendar('+nextYear+','+nextMonth+')"'+
' style="cursor:pointerbackground-color:#FF6600">>></td>'
//向后翻年
calendarTable += '<td colspan="1" onclick="javascript:drawCalendar('+(nextYear + 1)+','+nextMonth+')"'+
' style="cursor:pointerbackground-color:#FF6600">>>></td>'
calendarTable += ' </tr>'
//星期表头
calendarTable += ' <tr style="background-color:#6699FF">'
calendarTable += ' <td>日</td>'
calendarTable += ' <td>一</td>'
calendarTable += ' <td>二</td>'
calendarTable += ' <td>三</td>'
calendarTable += ' <td>四</td>'
calendarTable += ' <td>五</td>'
calendarTable += ' <td>六</td>'
calendarTable += ' </tr>'
//计算一个月内的天数,注意闰月
var dayNum_in_month = [31,28,31,30,31,30,31,31,30,31,30,31]
var isleapyear = date_year % 4
if(isleapyear == 0)
{
dayNum_in_month[1] = 29
}
var month_alldays = dayNum_in_month[date_month - 1]
//计算行数,line_top表示当前日期上面的行数,包括当前行;line_bot表示当前日期下面的行数,不包括当前行
var line_top
var line_bot
if((date_today - date_day + 1) % 7 != 0)
{
line_top = Math.floor((date_today - date_day + 1) / 7) + 1
}
else
{
line_top = Math.floor((date_today - date_day + 1) / 7)
}
if((30 - date_today + date_day + 1) % 7 != 0)
{
line_bot = Math.floor((30 - date_today + date_day + 1) / 7) + 1
}
else
{
line_bot = Math.floor((30 - date_today + date_day + 1) / 7)
}
//定义一个二维数组,预备一个6*7的数组,数组中每个元素对应一个单元格(日期)
var dateList = new Array([""],[""],[""],[""],[""],[""],[""])
var dateCell
for(var i = 1 i < 7 i++)
{
//i是行数
calendarTable += ' <tr>'
for(var j = 0 j < 7 j++)
{
//j是列数
dateList[i][j] = date_today - 7 * (line_top - i + 1) + j - date_day
//如果武器<=0,置空
if((date_today - 7 * (line_top - i + 1) + j - date_day) <= 0)
{
dateList[i][j] = " "
}
//如果日期大于月总天数,则不显示
if((date_today - 7 * (line_top - i + 1) + j - date_day) > month_alldays)
{
dateList[i][j] = " "
}
if(dateList[i][j] != " ")
{
//如果单元格不是空,那么可以设置其触发三个事件,共有三个事件
//1、单击事件,将当前日期写入文本框
//2、鼠标指针移到单元格上,改变背景
//3、鼠标指针离开单元格,背景复原
dateCell =
'<td onclick="javascript:setDateText('+date_year+','+date_month+',this.firstChild.nodeValue)"'+'onmouseover="javascript:setFocus(this)"'+' onmouseout="javascript:setFocusOut(this)"'+ ' style="cursor:pointer">'+dateList[i][j]+'</td>'
if(i == line_top && j == line_bot)
{
dateCell =
'<td onclick="javascript:setDateText('+date_year+','+date_month+',this.firstChild.nodeValue)"'+'onmouseover="javascript:setFocus(this)"'+' onmouseout="javascript:setFocusOut(this)"'+ ' style="cursor:pointerbackground-color:#FF6600">'+dateList[i][j]+'</td>'
}
}
else
{
dateCell = "<td> </td>"
}
calendarTable += dateCell
}
calendarTable += '</tr>'
}
calendarTable += '<tr><td colspan="7"'+'onclick="javascript:closeCalendar()"'+'style="background-color#339999cursor:pointercolor:redfont-weight:bold">'+'关闭('+date_year+"年"+date_month+"月"+')</td></tr>'
calendarTable += '</table>'
//将日期写入
var oCalendarContainer = document.getElementById("calendarContainer")
oCalendarContainer.innerHTML = calendarTable
}
//当鼠标指针指到当前日期单元格
function setFocus(obj)
{
obj.style.backgroundColor = "#FF6600"
}
//当鼠标指针离开当前日期单元格
function setFocusOut(obj)
{
obj.style.backgroundColor = ""
}
//鼠标单击当前单元格
function setDateText(sYear,sMonth,sDate)
{
var oDateText = document.getElementById("dateText")
oDateText.value = sYear + "-" + sMonth + "-" + sDate
}