为什么在chrome下,用setFullYear(2014)得到是1418310193647
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获得年份 </title>
<script type="text/javascript">
var mydate=new Date();
var myyear=mydate.setFullYear(2014); ;
document.write("年份:"+myyear);
</script>
</head>
<body>
</body>
</html>
你好,我在学习这里的时候也遇到了和你同样的问题,在搜索答案过程中看到了你的帖子,后面我查找了很多资料,也比较了我和其他教程上的写法
var mydate=new Date();
var myyear=mydate.setFullYear(2014);
document.write("myyear的值为:" + myyear + ",mydate的值为:"+ mydate);
以上输出结果为“myyear的值为:1393915149462,mydate的值为:Tue Mar 04 2014 14:39:09 GMT+0800 (CST)”
我的推测是我们在定义myyear的时候也许它并不是一个date对象,也许因此浏览器将其解析为毫秒的样子,从而显示出的样子为字符串的格式。也就是说我推断其实那些毫秒换算成时间就是我们设置的那个值。而mydate的显示结果大概类似于解析成mydate=mydate.setFullYear(2014);
是有返回值的,这个返回值是一个毫秒数,是从1970年1月1日8点,到你设置日期的毫秒数
我还是自己来回答这个问题吧,没想学习前端已经一年多了。
先说一下返回的1418310193647这个东西是一个时间戳,setFullYear()虽然是设置时间,但是也是有返回值的,返回设置时间的那个时间戳,所以得到了这个数字,通过简单的new Date(1418310193647)可以得到,我试这段代码的时间是14年晚上11点过3分,而且setFullYear(year,month,day)三个参数。
var mydate=new Date();
var myyear=mydate.getFullYear( );
document.write("年份:"+myyear);
getFullYear 是用来获取年份的
setFullYear是设置时间的,不是获取时间,所以没有返回值
既然你时设置时间,那么为什么又要复制给一个新的对象呢。这样就够了,你试试
var mydate=new Date();
mydate.setFullYear(204);
document.write("年份:"+mydate);