Javascript和mySQL日期时间戳的差异

Javascript和mySQL日期时间戳的差异,javascript,mysql,datetime,Javascript,Mysql,Datetime,我有一个mySQL数据库,在其中我自动以这种格式存储时间: 2015-08-17 21:31:06 我能够从我的数据库中检索这个时间戳,并将其转换成javascript。然后,我想用javascript获取当前日期时间,并确定当前日期时间与从数据库中提取的日期时间之间的间隔有多少天 我在研究如何在javascript中获取当前日期时间时发现了此函数: Date(); 但它似乎以这种格式返回日期: Tue Aug 18 2015 10:49:06 GMT-0700 (Pacific Dayli

我有一个mySQL数据库,在其中我自动以这种格式存储时间:

2015-08-17 21:31:06
我能够从我的数据库中检索这个时间戳,并将其转换成javascript。然后,我想用javascript获取当前日期时间,并确定当前日期时间与从数据库中提取的日期时间之间的间隔有多少天

我在研究如何在javascript中获取当前日期时间时发现了此函数:

Date();
但它似乎以这种格式返回日期:

Tue Aug 18 2015 10:49:06 GMT-0700 (Pacific Daylight Time)

必须有一种更简单的方法来实现这一点,而不是一个字符一个字符地从两个字符中挑选出来?

您可以通过将从后端接收到的数据作为第一个参数传递给javascript来构建一个新的日期。
您必须确保格式是可接受的格式。在您的情况下,我们需要将空格替换为T。您也可以从后端更改格式。 中提供了一些很好的示例

要计算天数差异,可以执行以下操作:

var now = new Date();
var then = new Date("2015-08-15T21:31:06");
console.log((now - then)/1000/60/60/24);

通过将从后端接收的数据作为第一个参数传递,您可以在javascript中构建新日期。
您必须确保格式是可接受的格式。在您的情况下,我们需要将空格替换为T。您也可以从后端更改格式。 中提供了一些很好的示例

要计算天数差异,可以执行以下操作:

var now = new Date();
var then = new Date("2015-08-15T21:31:06");
console.log((now - then)/1000/60/60/24);

通过将从后端接收的数据作为第一个参数传递,您可以在javascript中构建新日期。
您必须确保格式是可接受的格式。在您的情况下,我们需要将空格替换为T。您也可以从后端更改格式。 中提供了一些很好的示例

要计算天数差异,可以执行以下操作:

var now = new Date();
var then = new Date("2015-08-15T21:31:06");
console.log((now - then)/1000/60/60/24);

通过将从后端接收的数据作为第一个参数传递,您可以在javascript中构建新日期。
您必须确保格式是可接受的格式。在您的情况下,我们需要将空格替换为T。您也可以从后端更改格式。 中提供了一些很好的示例

要计算天数差异,可以执行以下操作:

var now = new Date();
var then = new Date("2015-08-15T21:31:06");
console.log((now - then)/1000/60/60/24);

您可以直接在查询中选择差异:

SELECT DATEDIFF(now(), myDateCol) FROM myTable;

您可以直接在查询中选择差异:

SELECT DATEDIFF(now(), myDateCol) FROM myTable;

您可以直接在查询中选择差异:

SELECT DATEDIFF(now(), myDateCol) FROM myTable;

您可以直接在查询中选择差异:

SELECT DATEDIFF(now(), myDateCol) FROM myTable;

Date对象有一个名为getTime()的函数,它将以毫秒为单位提供当前时间戳。然后,您可以通过除以(1000*3600*24)得到差值并转换为天数 e、 g


Date对象有一个名为getTime()的函数,它将以毫秒为单位提供当前时间戳。然后,您可以通过除以(1000*3600*24)得到差值并转换为天数 e、 g


Date对象有一个名为getTime()的函数,它将以毫秒为单位提供当前时间戳。然后,您可以通过除以(1000*3600*24)得到差值并转换为天数 e、 g


Date对象有一个名为getTime()的函数,它将以毫秒为单位提供当前时间戳。然后,您可以通过除以(1000*3600*24)得到差值并转换为天数 e、 g


因为其他答案都不完全正确:

var pieces = "2015-08-17 21:31:06".split(' ');
var date = pieces[0].split('-');
var time = pieces[1].split(':');

var yr = date[0], mon = date[1], day = date[2];
var hour = time[0], min = time[1], sec = time[2];
var dateObj = new Date(yr, mon, day, hr, min, sec);

//if you want the fractional part, omit the call to Math.floor()
var diff = Math.floor((Date.now() - dateObj.getTime()) / (1000 * 60 * 60 * 24));
请注意,所有这些都不涉及浏览器与数据库中存储的内容之间的时区差异。下面是一个偏移示例:

var tzOff = new Date().getTimezoneOffset() * 60 * 1000; //in ms

因为其他答案都不完全正确:

var pieces = "2015-08-17 21:31:06".split(' ');
var date = pieces[0].split('-');
var time = pieces[1].split(':');

var yr = date[0], mon = date[1], day = date[2];
var hour = time[0], min = time[1], sec = time[2];
var dateObj = new Date(yr, mon, day, hr, min, sec);

//if you want the fractional part, omit the call to Math.floor()
var diff = Math.floor((Date.now() - dateObj.getTime()) / (1000 * 60 * 60 * 24));
请注意,所有这些都不涉及浏览器与数据库中存储的内容之间的时区差异。下面是一个偏移示例:

var tzOff = new Date().getTimezoneOffset() * 60 * 1000; //in ms

因为其他答案都不完全正确:

var pieces = "2015-08-17 21:31:06".split(' ');
var date = pieces[0].split('-');
var time = pieces[1].split(':');

var yr = date[0], mon = date[1], day = date[2];
var hour = time[0], min = time[1], sec = time[2];
var dateObj = new Date(yr, mon, day, hr, min, sec);

//if you want the fractional part, omit the call to Math.floor()
var diff = Math.floor((Date.now() - dateObj.getTime()) / (1000 * 60 * 60 * 24));
请注意,所有这些都不涉及浏览器与数据库中存储的内容之间的时区差异。下面是一个偏移示例:

var tzOff = new Date().getTimezoneOffset() * 60 * 1000; //in ms

因为其他答案都不完全正确:

var pieces = "2015-08-17 21:31:06".split(' ');
var date = pieces[0].split('-');
var time = pieces[1].split(':');

var yr = date[0], mon = date[1], day = date[2];
var hour = time[0], min = time[1], sec = time[2];
var dateObj = new Date(yr, mon, day, hr, min, sec);

//if you want the fractional part, omit the call to Math.floor()
var diff = Math.floor((Date.now() - dateObj.getTime()) / (1000 * 60 * 60 * 24));
请注意,所有这些都不涉及浏览器与数据库中存储的内容之间的时区差异。下面是一个偏移示例:

var tzOff = new Date().getTimezoneOffset() * 60 * 1000; //in ms


跟踪,但确定两个日期之间天数的最佳方法是什么?这个答案的跨浏览器兼容性较差。它在chrome中工作正常,但调用
新日期(“2015-08-17 21:31:06”)。FF中的getTime()
返回
NaN
。根据文档,您需要手动提取每个参数以传递给日期构造函数。good catch@JaredSmith根据我在MDN文档中看到的内容,我们需要在日期和时间之间有一个T,而不是一个空格。还要注意,javascript中的除法不会返回像
date.now()这样的整数
确实如此。@JaredSmith我认为我们不希望除法返回整数。跟踪,但确定两个日期之间天数的最佳方法是什么?这个答案的跨浏览器兼容性很差。它在chrome中工作正常,但调用
新日期(“2015-08-17 21:31:06”)。FF中的getTime()
返回
NaN
。根据文档,您需要手动提取每个参数以传递给日期构造函数。good catch@JaredSmith根据我在MDN文档中看到的内容,我们需要在日期和时间之间有一个T,而不是一个空格。还要注意,javascript中的除法不会返回像
date.now()这样的整数
确实如此。@JaredSmith我认为我们不希望除法返回整数。跟踪,但确定两个日期之间天数的最佳方法是什么?这个答案的跨浏览器兼容性很差。它在chrome中工作正常,但调用
新日期(“2015-08-17 21:31:06”)。FF中的getTime()
返回
NaN
。根据文档,您需要手动提取每个参数以传递给日期构造函数。good catch@JaredSmith根据我在MDN文档中看到的内容,我们需要在日期和时间之间有一个T,而不是一个空格。还要注意,javascript中的除法不会返回像