ibear
小狐狸
小狐狸
  • UID2894
  • 注册日期2005-02-09
  • 最后登录2005-03-20
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3144回复:4

Date的对象有错?

楼主#
更多 发布于:2005-03-20 10:16
var d= new Date(2000,10,21);
var SY = d.getYear();
var SM = d.getMonth();
var SD = d.getDate();
alert(SY+'年'+SM+'月'+SD+"日");

返回的是100年10月21日
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-03-20 10:16
猫头猪
狐狸大王
狐狸大王
  • UID163
  • 注册日期2004-11-25
  • 最后登录2005-12-04
  • 发帖数595
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2005-03-20 10:16
另外附上ECMA标准中对getYear()的定义:

Date.prototype.getYear ( )
NOTE The getFullYear method is preferred for nearly all purposes,
because it avoids the  year 2000 problem.
When the getYear method is called with no arguments the following
steps are taken:
1. Let t be this time value.
2. If t is NaN, return NaN.
3. Return YearFromTime(LocalTime(t)) - 1900.

所以,当年份是2004的时候,标准定义的返回是104。
chon81
小狐狸
小狐狸
  • UID4383
  • 注册日期2005-03-25
  • 最后登录2005-03-25
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2005-03-20 10:16
var d= new Date(2000,10,21);
var SY = d.getFullYear();
var SM = d.getMonth();
var SD = d.getDate();
alert(SY+'年'+SM+'月'+SD+"日");
xoferiF
热心会员
热心会员
  • UID6559
  • 注册日期2005-06-05
  • 最后登录2020-04-24
  • 发帖数418
  • 经验24枚
  • 威望0点
  • 贡献值4点
  • 好评度1点
  • 社区居民
  • 忠实会员
4楼#
发布于:2005-03-20 10:16
Donews注册用户的错误

if( eval( year.value ) > eval( d.getYear() ) || 1900 > eval( year.value ) ){
				sErr += "\n  *不是吧,请检查一下年份! ^_^" ;
				alert( sErr ) ;
				year.focus();
				return false ;
			}
游客

返回顶部