如何将日期转换为时间戳?

2020/10/24 06:01 · javascript ·  · 0评论

我想将日期转换为时间戳,我的输入是26-02-2012我用了

new Date(myDate).getTime();

上面写着NaN ..谁能告诉我如何转换它?

将字符串拆分为多个部分,并将其直接提供给Date构造函数:

更新:

var myDate = "26-02-2012";
myDate = myDate.split("-");
var newDate = new Date( myDate[2], myDate[1] - 1, myDate[0]);
console.log(newDate.getTime());

试试这个函数,它使用Date.parse()方法,不需要任何自定义逻辑:

function toTimestamp(strDate){
   var datum = Date.parse(strDate);
   return datum/1000;
}
alert(toTimestamp('02/13/2009 23:31:30'));

这个重构的代码可以做到

let toTimestamp = strDate => Date.parse(strDate)

这对所有现代浏览器都有效,除了ie8-

这里有两个问题。首先,您只能在日期的实例上调用getTime。您需要将新的日期包装在方括号中或将其分配给变量。

其次,您需要以正确的格式向它传递一个字符串。

工作示例:

(new Date("2012-02-26")).getTime();

你只需要扭转你的日期数字,变化-,

 new Date(2012,01,26).getTime(); // 02 becomes 01 because getMonth() method returns the month (from 0 to 11)

在您的情况下:

 var myDate="26-02-2012";
 myDate=myDate.split("-");
 new Date(parseInt(myDate[2], 10), parseInt(myDate[1], 10) - 1 , parseInt(myDate[0]), 10).getTime();

PS UK语言环境在这里并不重要。

function getTimeStamp() {
       var now = new Date();
       return ((now.getMonth() + 1) + '/' + (now.getDate()) + '/' + now.getFullYear() + " " + now.getHours() + ':'
                     + ((now.getMinutes() < 10) ? ("0" + now.getMinutes()) : (now.getMinutes())) + ':' + ((now.getSeconds() < 10) ? ("0" + now
                     .getSeconds()) : (now.getSeconds())));
}

要将(ISO)日期转换为Unix时间戳,我最终得到了比所需时间长3个字符的时间戳,因此我的年份大约为5万。

我必须将其定义为1000:
new Date('2012-02-26').getTime() / 1000

对于那些希望以以下格式阅读时间戳的人, yyyymmddHHMMSS

> (new Date()).toISOString().replace(/[^\d]/g,'')              // "20190220044724404"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -3) // "20190220044724"
> (new Date()).toISOString().replace(/[^\d]/g,'').slice(0, -9) // "20190220"

用法示例:备份文件扩展名。 /my/path/my.file.js.20190220

万一您来这里寻找当前时间戳

  var date      = new Date();
  var timestamp = date.getTime();

TLDR:

new Date().getTime();
//console.log(new Date().getTime());

您的字符串格式不是该Date对象指定要处理的格式您必须自己解析,使用日期解析库(例如MomentJS或更旧的(据我所知目前尚未维护)DateJS),或2012-02-29在要求Date解析之前将其解析为正确的格式(例如

获得的原因NaN:当您要求new Date(...)处理无效的字符串时,它将返回一个Date设置为无效日期对象(new Date("29-02-2012").toString()return "Invalid date")。getTime()在此状态下调用日期对象将返回NaN

/**
 * Date to timestamp
 * @param  string template
 * @param  string date
 * @return string
 * @example         datetotime("d-m-Y", "26-02-2012") return 1330207200000
 */
function datetotime(template, date){
    date = date.split( template[1] );
    template = template.split( template[1] );
    date = date[ template.indexOf('m') ]
        + "/" + date[ template.indexOf('d') ]
        + "/" + date[ template.indexOf('Y') ];

    return (new Date(date).getTime());
}

下面的代码会将当前日期转换为时间戳。

var currentTimeStamp = Date.parse(new Date());
console.log(currentTimeStamp);

其他开发人员已经提供了答案,但是以我自己的方式,您可以即时执行此操作,而无需创建任何用户定义的函数,如下所示:

var timestamp = Date.parse("26-02-2012".split('-').reverse().join('-'));
alert(timestamp); // returns 1330214400000
本文地址:http://javascript.askforanswer.com/ruhejiangriqizhuanhuanweishijianchuo.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!