• Javascript日期函数使用需要注意地方


    当我们需要获取未来某个时间的毫秒数时,可能第一时间想到的方法是

    (new Date("2014-12-08 12:00:00")).getTime()

    这个在方法在chrome下是会返回一个数字的。

    但是在IE下返回的是一个NaN,是因为IE下认为 YYYY-mm-dd HH:ii:ss不是一个合理的日期格式

    不过它倒是可以接受 YYYY-mm-dd这种格式

    为了通用兼容,我们可以针对 YYYY-mm-dd HH:ii:ss 这种格式可以将每个单位的值分解,使用setXXXX方法来获得一个你想要的时间

    var d = new Date()
    
    d.setFullYear(2014)
    d.setDate(8)
    d.setMonth(11)
    
    d.setHours(12)
    d.setMinutes(00)
    d.setSeconds(00)

    d.getTime() //返回2014-12-08 12:00:00 的毫秒数

    这里一定要注意,setDate一定需要在setMonth前调用。

    因为其实setMonth允许传入两个参数,第一个参数是月份,第二个是日期

    第二个日期参数未传值,会默认设置为当天的日期

    如果在new Date()的时候是31日,而你的目标月份是没有这一天的时候,d会自动将自己的月份设置为下一个有31日的月份

    比如,你在8月31日调用,目标是9月份的某一天,

    //===============在8月31日调用 错误的顺序
    d.setMonth(8)
    d.setDate(1)
    
    //d的month会被自动设置为09就是实际日期中的10月
    //因为实际的9月没有31日
    //设置完月份再设置日期
    //这样你得到d其实就是10月1日
    
    //===============在8月31日调用 正确的顺序
    d.setDate(1)
    d.setMonth(8)

    先设置setDate,再设置setMonth。这样能够保证不会错误。

  • 相关阅读:
    [王爽汇编语言笔记]内存地址空间
    [zt]Tutorial: Make Vim as Your C/C++ IDE Using c.vim Plugin
    ubuntu下root 密码忘记的解决方法
    脱壳
    远程访问linux服务器
    【自己动手写操作系统学习笔记】1.hello world!
    不会溢出的除法
    javascript 数据类型和值(基础版)
    WebService 使用的简单例子
    SQL group by 和 having
  • 原文地址:https://www.cnblogs.com/leftice/p/3947192.html
Copyright © 2020-2023  润新知