我怎样才能获得
年度 月 日期 秒> ??
所以它看起来像这个
14062154
以这种方式尝试
function myFunction() {
var dt = new Date();
alert(dt.getYear() + dt.getMonth() + 1 + dt.getDate()+ dt.getSeconds());
}
结果是201可以请任何人知道我怎么能纠正?
答案 0 :(得分:2)
所有这些函数返回数字,当你在数字之间加上+
符号时会发生什么 - 它会添加它们。
首先尝试将它们转换为字符串,以便它们连接在一起,而不是添加
即
function myFunction() {
var dt = new Date();
alert(dt.getYear().toString() + (dt.getMonth() + 1).toString() + dt.getDate().toString() + dt.getSeconds().toString());
}
根据评论的其他几点
.getYear()
已过时且不应该使用(请参阅问题here),2014年会返回114,您应该使用.getFullYear()
,这将返回2014年,但是你可能只想要一个两位数的年份,修剪前两个字符
类似的东西:
function myFunction() {
var dt = new Date();
alert(dt.getYear().toString().substr(2) + (dt.getMonth() + 1).toString() + dt.getDate().toString() + dt.getSeconds().toString());
}
假设您要保留年份2位数的设置格式,月份2位数字,日期2位数字和秒数2位数,如果其中任何一项低于10,则需要填0。所以我会做一个辅助函数来填充,
类似的东西:
function pad(s, size) {
while (s.length < size) s = "0" + s;
return s;
}
然后你可以将它添加到你的功能
类似的东西:
function myFunction() {
var dt = new Date();
alert(pad(dt.getYear().toString().substr(2),2) + pad((dt.getMonth() + 1).toString(),2) + pad(dt.getDate().toString(),2) + pad(dt.getSeconds().toString(),2));
}
答案 1 :(得分:0)
嗨试试这个,
function addZeros(val)
{
val = ""+val;
return val.length === 1 ? "0"+val : val;
}
function myFunction()
{
var dt = new Date();
alert(dt.getUTCFullYear().toString().slice(2)+ addZeros(dt.getMonth()+1)+addZeros(dt.getDate())+ addZeros(dt.getSeconds()));
}
答案 2 :(得分:0)
您是否尝试使用时间戳? Javascript本身使用时间戳(以毫秒为单位),这可能会减少代码。
var timestamp_milliseconds = new Date().getTime();
如果您希望时间戳以秒为单位,则只需要填充1000;
var timestamp_seconds = new Date().getTime() / 1000;
答案 3 :(得分:0)
你也可以构建一个数组,然后加入它,这是一个更少的代码。
function getTimestamp() {
var dt = new Date();
return [dt.getYear(), dt.getMonth() + 1, dt.getDate(), dt.getSeconds()].join('');
}