转自:http://wyoojune.blog.163.com/blog/static/57093325201131193650725/
这个在php+mssql(日期类型为datetime)+ajax的时候才能用到,js需要把时间戳转为为普通格式,一般的情况下可能用不到
<script>
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
}
alert(getLocalTime(1293072805));
</script>
弹出:2010年12月23日 10:53
也可以用:
<script>
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().substr(0,17)}
alert(getLocalTime(1293072805));
</script>
如果想弹出:2010-10-20 10:00:00这个格式的也好办
<script>
function getLocalTime(nS) {
return new Date(parseInt(nS) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " ");
}
alert(getLocalTime(1177824835));
</script>
另外我也參考了別的網站的一些東東,如下:
function formatDate(now) {
var year=now.getYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
}
var d=new Date(1230999938);
alert(formatDate(d));
特別要提一下的是:
從MySQL傳過來的數據,有可能是字符串,要把他們轉化為數字,數字也要*1000,因為JS里用的是毫秒數!我的如下:
var time_num = $("date",message).text();
var time_num = parseInt(time_num); //传回来的是个字符串
var d = new Date(time_num*1000); //這個很重要,要*1000
var temp_time = formatDate(d);
第一個例子做的就比較正規,什麽情況都考慮到了!
**********************************20170310
在js里面想得到现在的日期与时间,以及前一个小时的日期与时间,以下的代码正确,与之前的代码不同的地方在于,秒数前面增加了一个"0".
//end by jianhong
function formatDate(now) {
var year=now.getFullYear();
var month=now.getMonth()+1;
var date=now.getDate();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
if(parseInt(second)<10){
second = '0'+second;
}
return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
}
var d1=new Date();
var d2=new Date(d1.getTime()-1*60*60*1000);
alert(formatDate(d1));
alert(formatDate(d2));