在javascript中将日期转换为数字(不是时间戳)

问题描述:

我正在寻找一种方法将javascript Date转换为一个数字,该数字表示自该日期(例如,1.1.1900)以来经过的天数。因为它通常用时间戳和毫秒来完成。在javascript中将日期转换为数字(不是时间戳)

我可以这样做吗?

+0

你试过了什么?你有没有试过查看[Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date)的文档,这可能会给你一些想法。 – 2015-02-09 16:00:20

+1

随着时间和精力 - 是的。 – Margus 2015-02-09 16:00:34

+1

由于这个问题显然缺乏努力和研究,您可能会被拒绝投票。这是几乎所有教程中发现的非常基本的日期操作。 – leigero 2015-02-09 16:00:46

您可以通过使用javascript函数getTime()来实现此目的。

代码:

var a = new Date(); 
alert(a.getTime()); 

Working Example

据的getTime()定义:

的的getTime()方法返回对应于 时间根据指定日期的数值世界各地的时间。

更可以在此link

更新中找到:

如果你想拥有它的无天,那么你就需要计算或使用图书馆像moment.js

Working Fiddle for Days

+0

宁可看起来像时间戳,这是我不想要的。 – Ferenjito 2015-02-09 16:05:16

+0

getTime()方法返回的值是1970年1月1日00:00:00 UTC以来的毫秒数,所以我想这就是你想要的吗? @Ferenjito,thisi我想你可以转换为没有天后 – V31 2015-02-09 16:07:21

+0

不,我想要几天,而不是几毫秒,但我看到我必须计算这个(当然这是微不足道的)。 – Ferenjito 2015-02-09 16:09:02

例如像:

var date1 = new Date("1/Jan/1900 00:00:00"); 
 
    var date2 = new Date("20/Nov/2012 19:15:00"); 
 

 
    var diff = date2.getTime() - date1.getTime(); 
 

 
    var days = Math.floor(diff/(1000 * 60 * 60 * 24)); 
 
    diff -= days * (1000 * 60 * 60 * 24); 
 

 
    var hours = Math.floor(diff/(1000 * 60 * 60)); 
 
    diff -= hours * (1000 * 60 * 60); 
 

 
    var mins = Math.floor(diff/(1000 * 60)); 
 
    diff -= mins * (1000 * 60); 
 

 
    var seconds = Math.floor(diff/(1000)); 
 
    diff -= seconds * (1000); 
 

 
    document.write(days + " days, " + hours + " hours, " + mins + " minutes, " + seconds + " seconds");