javascript - 检查时差是否小于 45 分钟并运行函数 - AngularJS

标签 javascript php angularjs

在 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/

相关文章:

javascript - AudioBuffer 不可缓存/解码AudioData 需要很长时间

javascript - 包含ajax后加载js文件

javascript - 如何使用 javascript/JQuery 在所有 dom 图像上交换 img src 中的一项?

javascript - 我如何知道用户正在浏览网页的哪一部分?

php strtotime 难题 - 夏令时?

php - 此后如何使用 explode ,因为在我的数据库列中,所有值都在产品列中可用,如下所示

php - 选择多个表只在一个表中工作

javascript - AngularJS 中是否有用于在标记中创建子作用域的简写?

javascript - 找不到 AngularJS uibModal 依赖项

javascript - 循环中的多个 AJAX 调用