var date=new Date(Date.parese("2017-01-12".replace(/-/g/,"/")));
2017-01-12是无法被各个浏览器中,使用 new Date(str) 来正确生成日期对象的。正确的格式是“2017/01/12”。(如IE不兼容)
-------------------------------------------------------------------------------
javascript的日期用法:
var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份(4位,1970-????) myDate.getMonth(); //获取当前月份(0-11,0代表1月) myDate.getDate(); //获取当前日(1-31) myDate.getDay(); //获取当前星期X(0-6,0代表星期天) 何问起 hovertree.com myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数) myDate.getHours(); //获取当前小时数(0-23) myDate.getMinutes(); //获取当前分钟数(0-59) myDate.getSeconds(); //获取当前秒数(0-59) myDate.getMilliseconds(); //获取当前毫秒数(0-999) myDate.toLocaleDateString(); //获取当前日期 var mytime=myDate.toLocaleTimeString(); //获取当前时间 myDate.toLocaleString( ); //获取日期与时间
==========================================================================
JS获取当前时间戳的方法-JavaScript 获取当前时间戳
JavaScript 获取当前时间戳:
第一种方法:
var timestamp =Date.parse(new Date());
结果:1280977330000
第二种方法:
var timestamp =(new Date()).valueOf();
结果:1280977330748
第三种方法:
var timestamp=new Date().getTime();
结果:1280977330748
第一种:获取的时间戳是把毫秒改成000显示,
第二种和第三种是获取了当前毫秒的时间戳。
我和同事在用js实现一个显示出分析数据所剩大概时间的过程中,时间总是变给0,结果很怪异,最后发现获取时间的时候用的是Date.parse(newDate())获取的时间戳把毫秒改成了000显示,所以时间差计算的不准确。
可以用第二种或第三种方法计算时间差。http://hovertree.com/menu/javascript/
js中单独调用new Date(),例如document.write(new Date());
显示的结果是:Mar 31 10:10:43 UTC+0800 2012 这种格式的时间
但是用new Date() 参与计算会自动转换为从1970.1.1开始的毫秒数
--------------------------------------------------------------------------------------------------
将字符串形式的日期转换成日期对象
var strTime="2011-04-16"; //字符串日期格式 var date= new Date(Date.parse(strTime.replace(/-/g, "/"))); //转换成Data(); var month=date.getMonth()+1; //获取当前月份
----------------------------------------------------
倒计时
1 function djsTime(startTime) { 2 var currentDate = new Date(); 3 var days = startTime - currentDate; 4 EndTimeMsg = parseInt(days / 1000);//精确到秒 5 d = Math.floor(EndTimeMsg / 60 / 60 / 24); 6 d_left = EndTimeMsg - (d * 60 * 60 * 24); 7 h = Math.floor(d_left / 60 / 60); 8 h_left = d_left - (h * 60 * 60); 9 m = Math.floor(h_left / 60); 10 s = h_left - m * 60; 11 // s = Math.floor((EndTimeMsg - h * 60 * 60 - m * 60)); 12 document.getElementById("DD").innerHTML = d; 13 document.getElementById("HH").innerHTML = h < 10 ? ('0' + h) : h; 14 document.getElementById("MM").innerHTML = m < 10 ? ('0' + m) : m; 15 document.getElementById("SS").innerHTML = s < 10 ? ('0' + s) : s; 16 EndTimeMsg--; 17 if (EndTimeMsg < 0) { 18 document.getElementById("DD").innerHTML = "0"; 19 document.getElementById("HH").innerHTML = "00"; 20 document.getElementById("MM").innerHTML = "00"; 21 document.getElementById("SS").innerHTML = "00"; 22 } 23 setTimeout(function () { 24 if (startTime <= new Date()) 25 location.reload(); 26 djsTime(startTime); 27 }, 1000); 28 }
时间转几天前几小时前
utils.formatMsgTime =function(timespan) { var dateTime = new Date(timespan); var year = dateTime.getFullYear(); var month = dateTime.getMonth() + 1; var day = dateTime.getDate(); var hour = dateTime.getHours(); var minute = dateTime.getMinutes(); var second = dateTime.getSeconds(); var now = new Date(); //var now_new = Date.parse(now.toDateString()); //typescript转换写法 var now_new=new Date().getTime(); var milliseconds = 0; var timeSpanStr; milliseconds = now_new - timespan; if (milliseconds <= 1000 * 60 * 1) { timeSpanStr = '刚刚'; } else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) { timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前'; } else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) { timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前'; } else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) { timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前'; } else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year == now.getFullYear()) { timeSpanStr = month + '-' + day + ' ' + hour + ':' + minute; } else { timeSpanStr = year + '-' + month + '-' + day + ' ' + hour + ':' + minute; } return timeSpanStr; };