在 PHP 中使用这样的代码很容易做到这一点;
if (strtotime($given_time) >= time()+300) echo "You are online";
但是在 SO 上找不到任何东西可以在 javascript 中完全做到这一点。 我想检查给定时间和当前时间之间的差异是否小于 45 分钟
例如
$scope.given_time = "14:10:00"
$scope.current_time = new Date();
我只关心时间部分。我需要从 new Date();
中提取时间部分,然后进行比较。
那么这应该是true
如何使用 Javascript 实现此目的:
if ($scope.given_time - $scope.current_time < 45 minutes) {
// do something
}
最佳答案
Javascript 使用以毫秒为单位的 unix 时间戳,因此它类似于 strtotime(使用秒)的输出。
var date = new Date();
然后你需要从毫秒开始计算。 (分钟 * 60 * 1000)
您还可以使用 date.parse()
将字符串解析为毫秒,就像 PHP 中的 strtotime()
解析为秒一样。
完整:
var date = new Date();
var last = new Date('Previous Date'); // or a previous millisecond timestamp
if ( ( date - last ) > ( 45 * 60 * 1000 ) ) {
// do something
}
您可以使用静态日期来比较时间,如果您排除日期,这正是 strtotime 所做的:
var last = new Date('1/1/70 14:10:00');
var date = new Date('1/1/70 14:30:00');
但是,如果您尝试比较跨越一天边界的时间,这种方法将失败。
关于javascript - 检查时差是否小于 45 分钟并运行函数 - AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34090898/