所有这些函数都返回数字,当您在数字之间放置 + 符号时会发生什么 - 它会将它们相加。
试着先把它们变成字符串,这样它们就被连接起来了,而不是被添加
即
function myFunction() {
var dt = new Date();
alert(dt.getYear().toString() + (dt.getMonth() + 1).toString() + dt.getDate().toString() + dt.getSeconds().toString());
}
根据 cmets 的其他几点
.getYear() 是旧的,不应该真正使用(参见 SO 问题 here),它返回 114 表示 2014,你应该使用 .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,则需要用零填充。所以我会做一个辅助函数来填充,
类似:
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));
}