JS操作日期

function dateF(){
var now = new Date();//当前日期
var year = now.getYear();//年份后两位
var fullYear = now.getFullYear();//获取完整的年份(4位,1970-????)
now.getMonth(); //获取当前月份(0-11,0代表1月)
now.getDate(); //获取当前日(1-31)
now.getDay(); //获取当前星期X(0-6,0代表星期天)
now.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
now.getHours(); //获取当前小时数(0-23)
now.getMinutes(); //获取当前分钟数(0-59)
now.getSeconds(); //获取当前秒数(0-59)
now.getMilliseconds(); //获取当前毫秒数(0-999)
now.toLocaleDateString(); //获取当前日期
var mytime=now.toLocaleTimeString(); //获取当前时间
now.toLocaleString( ); //获取日期与时间

}

[b]获得日期星期与时间:[/b]
setInterval("document.getElementById('linkweb').innerText=new Date().toLocaleString()+'星期'+'日一二三四五六'.charAt(new Date().getDay());",1000);
[b]或是[/b]
setInterval("document.getElementById('linkweb1').innerHTML=new Date().toLocaleString().replace(' ',' 星期'+'日一二三四五六'.charAt(new Date().getDay())+' ');",1000);

[b]
增强JavaScript中的日期构造函数 [/b]

在编写程序时,需要使用javascript中的日期构造函数。经过使用发现,它不提供类似new Date("2004-01-01")这样的构造,但是对于var dd =new Date('2008/34/42')是可以通过的,显示的日期是Thu Nov 11 00:00:00 UTC+0800 2010。由此表明Date函数只支持斜杠分隔的日期。为了支持连字符的日期格式,下面是某个人书写的代码如下:

<script language="javascript">
//功能:扩展日期函数,支持YYYY-MM-DD或YYYY-MMDD hh:mm:ss字符串格式
//返回:如果正确,则返回javascript中支持UTC日期格式,如果错误,则返回false
//作者:王洪生(Kevin)
//日期:2004-12-15
//举例: var myDate = Date_Ex("2004-12-21 23:01:00"); //返回正确的日期
// var myDate = Date_Ex("2004-12-21"); //返回正确的日期
// var myDate = Date_Ex("2004-23-12 12:60:29");//返回false,且提示日期或时间超出有效范围
function Date_Ex(value1)
{
var strDate = value1;
if (strDate.length == 0)
return false;

//先判断是否为短日期格式:YYYY-MM-DD,如果是,将其后面加上00:00:00,转换为YYYY-MM-DD hh:mm:ss格式
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})/; //短日期格式的正则表达式
var r = strDate.match(reg);

if (r != null) //说明strDate是短日期格式,改造成长日期格式
strDate = strDate + " 00:00:00";

reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})/;
r = strDate.match(reg);
if (r == null)
{
alert("你输入的日期格式有误,正确格式为:2004-12-01 或 2004-12-01 12:23:45");
return false;
}

var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
if (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()== r[7])
{
return d;
}
else
{
alert("你输入的日期或时间超出有效范围,请仔细检查!");
return false;
}
}

[b]日期比较函数[/b]
function compareDate(DateOne,DateTwo)
{


var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-"));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ("-"));

var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-"));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-"));

if (Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) >
Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear))
{
return true;
}
else
{
return false;
}

}


[b]日期计算[/b]
function getDateDiff(date1,date2){

var re = /^(\d{4})\S(\d{1,2})\S(\d{1,2})$/;
var dt1,dt2;
if (re.test(date1))
{
dt1 = new Date(RegExp.$1,RegExp.$2 - 1,RegExp.$3);
}

if (re.test(date2))
{
dt2 = new Date(RegExp.$1,RegExp.$2 - 1,RegExp.$3);
}

return Math.floor((dt2-dt1)/(1000 * 60 * 60 * 24))

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值