JS获取四位年份和2位年份
let date=new Date();
//四位
let yearFour=date.getFullYear();
//两位
let yearFour=date.getFullYear().toString().subsr(2,2);
众所周知,js里面有个内置对象Date,记录了有关系统时间的信息。
我们只要实例化一个Date对象,var date= new Date();
然后就可以用这个对象获取有关当前时间的各种信息,比如年份,月份,日期以及时间等。
这里有一个小小的问题,在获取年份的时候,不同的浏览器竟然有不一样的结果喔。
var year=date.getYear();
alert(year);
IE中显示2010,没问题;但是FF,Chrome等却显示110,神奇呢~~~
我们仔细观察一下,发现2010-1900=110!
溯其根源,是因为在2000年之前,我们是两位数来表示年份的,比如拳皇97,拳皇99, 没有说拳皇1997的吧?
所以呢,在javascript里,获取的年份是默认减去1900的,当然在2000年之前,这是没问题的,但是2000年之后,就会出现110年这样的怪现象。
其实这么说来,110年才是正常的,IE中显示2010年的原因只是IE这个“万能”的浏览器自作主张地对getYear()的值加上1900罢了。
对了,这里顺便说一下,在java里面,也有这个现象,Date对象获取年份的时候也是默认减去1900的,不过在java里面,getYear()这个方法被标识为过时的,系统会提示,如果想获取到4位数的年份,需要用Calendar对象。
好了,我们回到js。要解决这个浏览器显示不同年份的问题怎么办呢?
很简单,两个方法。
- 1.改用getFullYear()方法,直接获取4位数的年份值
var myDate = new Date();
var year=myDate.getFullYear();
var yy = year.toString().substr(2, 2);
alert(yy)取值19
- 2.getYear()做个3元运算来处理,
参考代码:比如今年是2011年,取11
var myDate = new Date();
var year = myDate.getYear()
var year = year < 2000 ? year + 1900 : year
var yy = year.toString().substr(2, 2);
alert(yy)取值19
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现