我试图在几秒钟内获得两个日期之间的差异。逻辑是这样的:
我之所以用日期这样做是因为最终的日期/时间取决于其他一些变量而且它永远不会相同(这取决于用户做某事的速度)而且我还存储了初始日期其他的事情。
我一直在尝试这样的事情:
var _initial = new Date(),
_initial = _initial.setDate(_initial.getDate()),
_final = new Date(_initial);
_final = _final.setDate(_final.getDate() + 15 / 1000 * 60);
var dif = Math.round((_final - _initial) / (1000 * 60));
事情是,我从来没有得到正确的区别。我试过除以24 * 60
,这会留给我秒,但我从来没有做对。那么我的逻辑有什么不对?我可能会犯一些愚蠢的错误,因为它已经很晚了,但令我困扰的是我无法让它工作:)
答案 0 :(得分:210)
var startDate = new Date();
// Do your operations
var endDate = new Date();
var seconds = (endDate.getTime() - startDate.getTime()) / 1000;
甚至更简单(endDate - startDate) / 1000
,如评论中所指出,除非您使用的是打字稿。
您需要为getTime()
对象调用Date
方法,然后简单地减去它们并除以1000(因为它最初以毫秒为单位)。作为额外的,当你调用getDate()
方法时,你实际上是将月份的日期作为1到31之间的整数(不是基于零),而不是你得到的纪元时间调用getTime()
方法,表示自 1970年1月1日,00:00
根据您的日期相关操作的不同,您可能需要投资集成date.js或moment.js这样的库,这样可以让开发人员轻松 ,但这只是个人偏好的问题。
例如在moment.js中,我们会moment1.diff(moment2, "seconds")
这是美丽的。
答案 1 :(得分:3)
<script type="text/javascript">
var _initial = '2015-05-21T10:17:28.593Z';
var fromTime = new Date(_initial);
var toTime = new Date();
var differenceTravel = toTime.getTime() - fromTime.getTime();
var seconds = Math.floor((differenceTravel) / (1000));
document.write('+ seconds +');
</script>
答案 2 :(得分:1)
您可以使用new Date().getTime()
获取时间戳。然后,您可以计算结束和开始之间的差异,最后将时间戳ms
转换为s
。
const start = new Date().getTime();
const end = new Date().getTime();
const diff = end - start;
const seconds = Math.floor(diff / 1000 % 60);
答案 3 :(得分:1)
准确和快速将在几秒钟内给出输出:
let startDate = new Date()
let endDate = new Date("yyyy-MM-dd'T'HH:mm:ssZ");
let seconds = Math.round((endDate.getTime() - startDate.getTime()) / 1000);
答案 4 :(得分:0)
尝试使用高级编程语言的专用函数。 JavaScript .getSeconds();
适合此处:
var specifiedTime = new Date("November 02, 2017 06:00:00");
var specifiedTimeSeconds = specifiedTime.getSeconds();
var currentTime = new Date();
var currentTimeSeconds = currentTime.getSeconds();
alert(specifiedTimeSeconds-currentTimeSeconds);
答案 5 :(得分:0)
现在和10分钟后使用momentjs的时间差
let start_time = moment().format('YYYY-MM-DD HH:mm:ss');
let next_time = moment().add(10, 'm').format('YYYY-MM-DD HH:mm:ss');
let diff_milliseconds = Date.parse(next_time) - Date.parse(star_time);
let diff_seconds = diff_milliseconds * 1000;
答案 6 :(得分:0)
下面的代码将以秒为单位给出时间差。
var date1 = new Date(); // current date
var date2 = new Date("06/26/2018"); // mm/dd/yyyy format
var timeDiff = Math.abs(date2.getTime() - date1.getTime()); // in miliseconds
var timeDiffInSecond = Math.ceil(timeDiff / 1000); // in second
alert(timeDiffInSecond );
答案 7 :(得分:0)
使用 new Date() 定义两个日期。 使用 date2 计算两个日期的时差。 getTime() – 日期 1。获取时间(); 计算编号两个日期之间的天数,将两个日期的时差除以 no。一天中的毫秒数 (10006060*24)