转行做前端,总算尝试半路出家的辛苦,两个月来找工作进展非常之不顺利,只要每次失败总结教训,把每次遇到的问题吃透,菜鸟找到工作应该不会太远吧!下面是是今天笔试遇到一个题目,是关于时间转换的;笔试的时候写的不太理想,回来查了查,发现将时间转换为毫秒数的方法有四个:
Date.parse()
Date.UTC
valueOf()
getTime()
1. Date.parse():该方法接受一个表示日期的字符串参数,然后尝试根据这个日期返回日期的毫秒数。ECMA-262没有定义该方法支持哪种日期格式,因此这个方法的行为因为浏览器实现而异。如果传入字符串不能表示日期,那么它会返回NaN。该方法返回的毫秒值后三位全为0,精确到秒数,没有毫秒数。
Date.parse("2012年9月9日") NaN Date.parse("2012 9 9") 1347120000000 // 毫秒数转换为日期格式 new Date(Date.parse("2012 9 9")) Sun Sep 09 2012 00:00:00 GMT+0800 (中国标准时间)
2. Date.UTC(): 该方法也返回表示日期的毫秒数,但是该方法接受的参数是年份、基于0的月份、月份中的哪一天、小时数、分钟、秒以及毫秒。这些参数中只有前两个参数是必需的。
Date.UTC(12) NaN Date.UTC(2013,4,11); 1368230400000
3. valueOf(): 该方法返回日期的毫秒表示,可以方便时间的比较,该方法返回的毫秒数精确到毫秒。
var date = new Date(); date.valueOf(); 1368283579633
4. getTime(): 返回表示日期的毫秒数,与valueOf()返回的值相同,也精确到毫秒数。
var date = new Date(); date.getTime(); 1368283691951
把每个遇到的问题搞清楚,也许面试笔试次数多了,成长也多了,自己找工作也许会顺利些吧。