2015-10-06 60 views
-3

在java中,这是我的一个衬垫创建具有灵活的格式时间戳功能:的Javascript timstamp功能一个衬垫

String timestamp() { 
    Calendar now = Calendar.getInstance(); 
    return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", now); 
} 

什么是JavaScript中的相同呢? 这里的jsfiddle它:jsfiddle.net/9kpea998

(是的,我知道有moment.js

+2

我认为,我们应该做出评论强制性的downvote。不知道发生了什么。 – 2015-10-06 11:14:16

+0

@xyz,正好!!!这就像说“你做错了什么,改进它”,而不是说__什么是错的。 –

+1

@JamesThorpe,OP不知道。在没有告诉他他犯了什么错误的情况下,他需要时间去认识他的错误。当我开始使用SO时,我曾经得到很多有价值的评论以及很多有用的评论。如今,我只能在任何地方看到贬低言论。 – 2015-10-06 11:23:45

回答

1

使用的代码量最低的简单的解决方法是:

function timestamp() { 
 
    return new Date().toISOString(); 
 
} 
 

 
document.write(timestamp());

但你无法访问自定义格式。

如果你想在这个问题中使用完全相同的格式,你可以使用这个更长的版本:

function timestamp() { 
 
    var date = new Date(); 
 

 
    var year = date.getFullYear(); 
 
    var month = date.getMonth(); 
 
    var day = date.getDate(); 
 
    var hour = date.getHours(); 
 
    var minute = date.getMinutes(); 
 
    var second = date.getSeconds(); 
 

 
    year = year.toString().substr(2); 
 
    month = ("00" + month).substr(-2,2); 
 
    day = ("00" + day).substr(-2,2); 
 

 
    var timestamp = 
 
     year + month + day + "_" + 
 
     hour + minute + second; 
 

 
    return timestamp; 
 
} 
 

 
document.write(timestamp());

编辑:

您可以使用正则表达式来格式化标准ISO更多类似的字符串:

function timestamp() { 
 
    return new Date().toISOString().replace(/([-:]|\..+)/g, "").replace("T", "_"); 
 
} 
 

 
document.write(timestamp());

+0

非常感谢!但不是很灵活。没有中间地带的东西的想法?例如。函数timestamp(){return(new Date).toISOString()。replace(/:/ gi,' - ')}; –

+0

@BenediktGroß,我已经更新了我的答案。 –