javascript - JS中的时间函数
问题描述
我正在尝试创建一个 JS 函数,在周一至周五上午 11:00 之前和周一至周五下午 03:00:00 之后隐藏 HTML 元素,并在周六和周日全天隐藏该元素。这是我到目前为止所拥有的。我想我快到了,但时间非常棘手。我在这里想念什么?谢谢!!
jQuery(function() {
/* your code here */
// days of the week
var d = new Date();
var weekday = new Array(7);
weekday[0] = "Sunday";
weekday[1] = "Monday";
weekday[2] = "Tuesday";
weekday[3] = "Wednesday";
weekday[4] = "Thursday";
weekday[5] = "Friday";
weekday[6] = "Saturday";
var n = weekday[d.getDay()];
// Gather Time
var startTime = "11:00:00 AM";
var endTime = "03:00:00 PM"
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var ap = "AM";
if (hour > 11) { ap = "PM"; }
if (hour > 12) { hour = hour - 12; }
if (hour == 0) { hour = 12; }
if (hour < 10) { hour = "0" + hour; }
if (minute < 10) { minute = "0" + minute; }
if (second < 10) { second = "0" + second; }
var currentTime = hour + ':' + minute + ':' + second + " " + ap;
if(n == "Monday" || n == "Tuesday" || n == "Wednesday" || n == "Thursday" || n == "Friday") {
if(startTime > currentTime && currentTime < endTime){
jQuery( "div.rpress_fooditem[data-term-id='2']" ).css({"display":"none"});
}}
else
jQuery( "div.rpress_fooditem[data-term-id='2']" ).css({"display":"block"});
alert("other day");
return currentTime;
});
解决方案
您在决定是否比较字符串,而不是实际日期...
var startTime = "11:00:00 AM";
var endTime = "03:00:00 PM"
var currentTime = hour + ':' + minute + ':' + second + " " + ap;
if(startTime > currentTime && currentTime < endTime)
更新
我会使用Date
然后我会相应地更改小时和分钟,startDate
因为endDate
我currentTime
不会改变任何东西。我希望这是有道理的。
更新 2
真正的问题是我们对什么样的日期进行操作?我们是在UTC还是它取决于用户的时区(取自浏览器)。如果答案是“基于时区”,那么我会建议您使用诸如 momentjs 之类的库或类似的库,因为由于“夏令时”的更改可能会改变加班时间,您需要更新该信息的库。我不会详细说明它,您可以在 google 中重新搜索问题的真正含义。
推荐阅读
- amazon-ec2 - 更改 AWS 容器的 sysctl 大页面
- python - 如何在 Django 中模拟突变参数?
- performance - 不一致的`perf annotate`内存加载/存储时间报告
- google-sheets - 如何在另一张纸上将一个数字分成 7 个不同的单元格?
- woocommerce - 产品的平均售价
- reactjs - 如何解决 axios 版本 0.18.0 的问题
- html - 绝对横幅图像流中的以下内容
- visual-studio - 如何在 Visual Studio 2019 for C++ 项目中使用 Windows 终端作为调试器控制台
- python - 我的 python 输出打印了两次,而我希望它打印一次
- javascript - 从另一个类函数中调用一个类函数 - JS newb