使用Javascript显示营业时间

使用Javascript显示营业时间,javascript,conditional-statements,Javascript,Conditional Statements,我正在为一所大学图书馆开发一个新网站。它将包括一个功能来显示任何一天的开放时间。许多库使用PHP与后端数据库或Google日历集成的某种组合来实现这一点。由于种种原因,我们无法做到这一点,因此我选择使用Javascript,因为众所周知,它可以与我们的CMS WordPress一起工作,而不必麻烦校园站长 我最初的方法是使用几个不同的文件,每个文件都有一个switch语句来显示基于一周中某一天的小时数。我们有三种时间类型:常规时间、考试周时间和代祷时间,只有一个地点。然而,交换文件会带来一定程度

我正在为一所大学图书馆开发一个新网站。它将包括一个功能来显示任何一天的开放时间。许多库使用PHP与后端数据库或Google日历集成的某种组合来实现这一点。由于种种原因,我们无法做到这一点,因此我选择使用Javascript,因为众所周知,它可以与我们的CMS WordPress一起工作,而不必麻烦校园站长

我最初的方法是使用几个不同的文件,每个文件都有一个switch语句来显示基于一周中某一天的小时数。我们有三种时间类型:常规时间、考试周时间和代祷时间,只有一个地点。然而,交换文件会带来一定程度的人为错误

因此,我决定使用一个文件。最有意义的方法是获取日期,将其格式化为月份/第一个月的周数/第二个月、第三个月等/日期,并使用一系列if。。。else语句将当前日期与该日期进行比较,然后运行switch语句为一周中的当前日期选择正确的小时数

问题是第一个if语句中的条件保持求值为true,即使它不是。谁能告诉我我做错了什么?还是有更好的方法来完成这项任务

这是我的密码:


请注意,因为我感觉很懒,不想计算月/周/周字符串的日历日期,所以我只实现了直接的数字比较,因此它不是最有效或最容易阅读的

我最后做的几乎是更换每一件

if (date_formatted >= '##/#/#')


我还向JSFIDLE中添加了一个divhours,这样您就可以实际看到不同测试日期的结果,并将document.getElementByIdhours转换为一个变量,以便于可读性。

好吧,您是在比较字符串,而不是日期……您应该与日期对象或数字进行比较。不要对格式化的日期字符串进行任何比较。date_formatted>=“12/3/1”不是进行日期比较的正确方法,这只是一个字符串比较,所以最好为我今天要比较的每个日期创建日期对象?我建议稍微整理一下代码的另一件事是将document.getElementByIdhours.innerHTML分配给变量,例如var hours,以便更快地引用。非常感谢!month/week_num/weekDay格式来自我在Javascript Cookbook论坛上找到的一个脚本,用于确定一天是否为联邦假日。也许不是最好的输入源。我突然想到,我可能可以使用函数来比较日期,并确定应该设置哪种类型的常规、考试或代祷时间。但现在这就行了。
if (date_formatted >= '##/#/#')
if (month >= ## && week_num >= # && weekDay >= #)