zoukankan      html  css  js  c++  java
  • JavaScript中的setMonth()方法的小问题 解决:setMonth(month, 1)

          今天测试人员发现一个问题,从英文日期转化中文日期,月份总会有“6月”变为“7月”。于是我在本地反复测试,发现如下规律:只要setMonth()的参数为小于31天的月份时就会变为下一个月。
           原因是:因为当前月份是31天,而设置的月份小于31天,就会把日期顺延。在setMonth的说明是这样的:
    setMonth 方法
    设置 Date 对象中用 本地时间表示的月份值。
    dateObj.setMonth(numMonth[, dateVal])
    参数
    dateObj
    必选项。任意 Date 对象。
    numMonth
    必选项。一个等于月份值的数值。
    dateVal
    可选项。一个代表日期的数值。如果没有提供此参数,那么将使用通过调用 getDate 方法而得到的数值。
    
           所以,从对dataVal参数的说明可以看出,在设置月份的同时,使用getDate获取日期,并使用得到的日期值设置了日期。于是就会发生月份顺延的情况。
    
          解决方法:
          1、设置月份时,将日期设为1,记setMonth(month, 1),当然可以在setMonth之前先调用setDate()设置日期;
          2、也可以在初始化Date对象时,就指定一个日期,也就是使用:dateObj = new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]) 的形式。
       3、也可以使用setFullYear()同时设置年、月、日,即setFullYear(numYear[, numMonth[, numDate]])。
  • 相关阅读:
    PHP_Code_challenge(代码审计)
    超全局变量$GLOBALS
    upload-labs(文件上传)
    CTF bugku 论剑场 web20
    多次Printf()是否使用用同一栈帧的参数?
    (转载于度盘)小迪安全渗透-学习讲义
    SQL数据库操作练习(2)
    .htaccess绕过
    PHP序列化思考(9.14已修改)
    SQL数据库操作练习(1)
  • 原文地址:https://www.cnblogs.com/william-lin/p/4359504.html
Copyright © 2011-2022 走看看