【问题标题】:How to get Javascript current date Seconds , in a particular format如何以特定格式获取 Javascript 当前日期秒数
【发布时间】:2014-08-12 23:19:52
【问题描述】:

如何获得

日期 ??

所以它看起来像这样

14062154

当这样尝试时

function myFunction() {


var dt = new Date();

alert(dt.getYear() +  dt.getMonth() + 1  + dt.getDate()+ dt.getSeconds());
}

结果是 201 谁能告诉我我该如何更正??

【问题讨论】:

  • 你想要长格式吗?
  • 这可能是添加每个组件的数值,而不是像字符串一样连接它们。如果要强制连接,在空字符串或 2 中“添加”。
  • 你认为它会神奇地转换为秒吗?
  • 那是一种奇怪的格式...为什么不包括小时和分钟?

标签: javascript


【解决方案1】:

所有这些函数都返回数字,当您在数字之间放置 + 符号时会发生什么 - 它会将它们相加。

试着先把它们变成字符串,这样它们就被连接起来了,而不是被添加

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));
}

【讨论】:

  • 上述代码的输出与您给出的上述示例的格式不完全相同。你可以考虑这个:jsfiddle.net/TvMLE :))
  • 如果月份、日期和秒是个位数,那么它将为 114654,其中 114 是 getYear,6 是月份,5 是日期,4 是秒
【解决方案2】:

你好,试试这个,

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()));
}

【讨论】:

    【解决方案3】:

    您是否尝试使用时间戳? Javascript 原生使用以毫秒为单位的时间戳,这可能会导致更少的代码。

    var timestamp_milliseconds = new Date().getTime();
    

    如果您希望时间戳以秒为单位,只需除以 1000;

    var timestamp_seconds = new Date().getTime() / 1000;
    

    【讨论】:

      【解决方案4】:

      你也可以建立一个数组然后加入它,这样代码少一点。

      function getTimestamp() {
      
        var dt = new Date();
      
      
        return [dt.getYear(), dt.getMonth() + 1, dt.getDate(), dt.getSeconds()].join('');
      
      }
      

      【讨论】:

        猜你喜欢
        • 2017-11-18
        • 1970-01-01
        • 1970-01-01
        • 2013-08-17
        • 1970-01-01
        • 2018-07-21
        • 2019-10-01
        • 2014-09-14
        • 2014-01-19
        相关资源
        最近更新 更多