在已保存时间和当前时间之间计算本地存储 javascript

Posted

技术标签:

【中文标题】在已保存时间和当前时间之间计算本地存储 javascript【英文标题】:Calculate between saved and current time localstorage javascript 【发布时间】:2018-11-04 05:31:53 【问题描述】:

我正在尝试在我放入本地存储的日期和当前时间戳之间进行计算。我想检查从它保存在本地存储中到现在之间有多少分钟。我不知道如何将本地存储中的日期保存为适当的日期对象!

代码如下:

<html>
<head>
    <script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
</head> 

<input type="text" id="text"> 
<button value="save" onClick="setStorage()" id="btn"> Save </button>



<script>
function setStorage()
    var currentTime = new Date();
    var text = $("#text").val();
    var testobj = 'test' : 1, 'refresh' : currentTime;
    localStorage.setItem('storage', JSON.stringify(testobj));

// setinterval code is on different page
        setInterval(function() 
        var date2 = new Date();
        var retreived = localStorage.getItem('storage');
        var date1 = new Date(retreived['refresh'])
        console.log(date1);
        var parse = JSON.parse(retreived);
        console.log(date2 - date1);
        $(".label").text(localStorage.getItem('storage'));
     , 1000);
</script>

setinterval 在不同的页面上。标签的结果是这样的:

"test":1,"refresh":"2018-05-24T17:36:06.471Z"

我如何将该日期与当前日期进行比较,并检查这 2 次之间有多少分钟?

谢谢!

【问题讨论】:

I cant figure out how to save the date in the localstorage as a propper date object tho! 不要 - 相反,只保存时间戳,并仅在需要时将其解析为日期/人类可读的文本,这样可以避免大量混乱 从存储的字符串中创建一个新数据,然后比较两者。 ***.com/questions/8224459/… 你可以同时使用这两种方法,但我更喜欢@CertainPerformance 的解决方案。时间戳更灵活。 与您的问题相关:***.com/questions/2010892/… Issues with Date() when using JSON.stringify() and JSON.parse()的可能重复 【参考方案1】:

只需将var date1 = new Date(retreived['refresh']) 更改为

var date1 = new Date(JSON.parse(retreived)['refresh'])

console.log(date2.getMinutes() - date1.getMinutes());

【讨论】:

分钟差应该更像(date2 - date1) / 6e4,见Get the Difference Between Two Dates in Minutes【参考方案2】:

我不知道如何将本地存储中的日期保存为适当的日期对象!

不要 - 相反,仅保存时间戳,并仅在需要时将其解析为日期/人类可读的文本,这样可以避免大量混乱

这对我有用!谢谢@CertainPerformance

【讨论】:

以上是关于在已保存时间和当前时间之间计算本地存储 javascript的主要内容,如果未能解决你的问题,请参考以下文章

降低内部循环的时间复杂度:在第一个循环中查找大于当前元素的元素数量并将其存储在已解决的数组中

Android Java:当前时间和未来特定时间之间的差异计算错误

JS cookie存储时间

Android applinks 在已发布的版本中不起作用,但在本地安装中可以正常工作

如何在java中保存和加载当前时间?

Java 比较字符串之间大小