一.先看以下一段js代码:(放在chrome的console里)
function CurentTime()
{
var now = new Date();
var year = now.getFullYear(); //年
var month = now.getMonth() + 1; //月
var day = now.getDate(); //日
var hh = now.getHours(); //时
var mm = now.getMinutes(); //分
var ss = now.getSeconds(); //秒
var clock = year + "-";
if(month < 10)
clock += "0";
clock += month + "-";
if(day < 10)
clock += "0";
clock += day + " ";
if(hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10) clock += '0';
clock += mm + ":";
if (ss < 10) clock += '0';
clock += ss;
return(clock);
};
alert(+new Date(CurentTime()));
二. 疑问:为何不是系统当前时间?
博客园的大神都在忙吗还是不屑这个问题呢?
但是我用alert(CurentTime()); //正常
用alert(+new Date(CurentTime())); //时间戳是时间戳,但不是当前时间戳,为什么?
你指的时间戳是什么格式的?你在拼接时间的时候,把毫秒这一级别的数据忽略了。时间处理,建议直接使用moment库。
有毫秒吗〉我只用getSeconds();啊,
不用那个库就不能实现了吗?
没办法
@殷敏峰: getMilliseconds(),毫秒。不用库当然可以实现,就是要考虑周全。
@幻天芒: 那是肯定的。
@殷敏峰: :)
@幻天芒: 关键现在还是出不来
@殷敏峰: 你想要什么样子的时间戳,其实我不知道你想要什么~
@幻天芒: 是吗?简单的,如1506111637 15年6月11号16时37分,有点难度。
@殷敏峰: 如1506111637 15年6月11号16时37分这哪里是时间戳
@殷敏峰: 不要拿这些数据去作为new Date的参数,它不认识。写个函数返回指定格式的文本,就是你需要的。
先alert(CurentTime());再alert(+new Date(CurentTime())); 这两个的时间是不一样的,因为CurentTime()执行了两次,而两次执行是有间隔的,如果想两个时间一致就赋值给一个变量var time=CurentTime(); alert(time);alert(+new Date(time))
function CurentTime()
{
var now = new Date();
var year = now.getFullYear(); //年
var month = now.getMonth() + 1; //月
var day = now.getDate(); //日
var hh = now.getHours(); //时
var mm = now.getMinutes(); //分
var ss = now.getSeconds(); //秒
var clock = year + "-";
if(month < 10)
clock += "0";
clock += month + "-";
if(day < 10)
clock += "0";
clock += day + " ";
if(hh < 10)
clock += "0";
clock += hh + ":";
if (mm < 10) clock += '0';
clock += mm + ":";
if (ss < 10) clock += '0';
clock += ss;
return(clock);
}; var myTime = CurentTime();
alert(+new Date(myTime)); //还是无法获取当前系统的时间戳
@殷敏峰: 当前时间是一直在变的,肯定存在误差,alert(+new Date(myTime));只是弹出执行的时候那个时间的时间戳
@liaoshifa10: 误差是有,但误差太大了,即便一直不动。
@殷敏峰: 1秒就相差1000了,不知道你想干嘛
@liaoshifa10: 那你试试能出结果吗?