javascript中getmonth()的问题

js中getmonth()月份比实际少1

  1. 问题
    今天在测试easyui中的日期的时候突然发现了一个问题,就是显示的日期与输入的日期相差了一个月。刚开始以为是前台传到后台的时候形式转置的时候除了问题,但是查看了数据库后发现数据是正确的,但是显示到前台发生了错误。

  2. 排错
    问题不再后台,那就开始排查前台的问题了。当中有一段代码是这样的:

var date = obj.getFullYear()+'-'+obj.getMonth()+'-'+obj.getDate();
  1. 问题
    问题是这样的,js中的getMonth()默认是由0~11的,所有直接调用这个方法的话数据会少1.因此需要额外加上1。

以下摘自JDK 文档
年份 y 由整数 y - 1900 表示。
月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
日期(一月中的某天)按通常方式由整数 1 至 31 表示。
小时由从 0 至 23 的整数表示。因此,从午夜到 1 a.m. 的时间是 0 点,从中午到 1 p.m. 的时间是 12 点。
分钟按通常方式由 0 至 59 的整数表示。
秒由 0 至 61 的整数表示;值 60 和 61 只对闰秒发生,尽管那样,也只用在实际正确跟踪闰秒的 Java 实现中。于按当前引入闰秒的方式,两个闰秒在同一分钟内发生是极不可能的,但此规范遵循 ISO C 的日期和时间约定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值