【发布时间】:2025-11-21 15:30:02
【问题描述】:
我正在编写一个来自url 的 html 代码,如下所示。其中显示在 ET 时区下的节目是 100% 正确的,因为它们属于正确的日期,但对于其他时区(PT、MT、CT、AT、NT),一些节目的日期不正确。
代码下方的屏幕截图属于下面代码中的 schedule-action-bar 类。 (此时从代码中删除了 ct、at 和 nt,以尽量减少我的问题)
<div class="schedule-wrapper" id="js-schedule-wrapper" data-timezone="et"> <!-- Line#A -->
<div class="schedule-action-bar"> <!-- this is on UI, from there we can select PT, MT and ET timezones -->
<div class="schedule-timezone-filter">
Select your timezone:
<ul id="js-timezone-picker">
<li>
<button id="js-time-pt" data-timezone="pt">PT</button>
</li>
<li>
<button id="js-time-mt" data-timezone="mt">MT</button>
</li>
<li>
<button id="js-time-ct" data-timezone="et">ET</button>
</li>
</ul>
</div>
</div>
<div class="schedule-show">
Show#A
<div class="schedule-show-time">
<time datetime="22:00 10-04-2019" data-timezone="pt">22:00</time>
<time datetime="23:00 10-04-2019" data-timezone="mt">23:00</time>
<time datetime="01:00 11-04-2019" data-timezone="et">01:00</time>
</div>
</div>
<!-- .schedule-show -->
<div class="schedule-show">
Show#B
<div class="schedule-show-time">
<time datetime="23:30 10-04-2019" data-timezone="pt">23:30</time>
<time datetime="00:30 11-04-2019" data-timezone="mt">00:30</time>
<time datetime="02:30 11-04-2019" data-timezone="et">02:30</time>
</div>
</div>
<!-- .schedule-show -->
<div class="schedule-show">
Show#C
<div class="schedule-show-time">
<time datetime="00:30 11-04-2019" data-timezone="pt">00:30</time>
<time datetime="01:30 11-04-2019" data-timezone="mt">01:30</time>
<time datetime="03:30 11-04-2019" data-timezone="et">03:30</time>
</div>
</div>
<!-- .schedule-show -->
</div>
问题陈述:
在#A 行,当 data-timezone="pt" 或 data-timezone="mt"(其中任何一个来自 UI)被选中时,它应该像这样显示,日期栏在顶部:
对于时区pt,它应该看起来像这样,日期在顶部
April 10
22:00 Show#A
23:30 Show#B
April 11
00:30 Show#C
对于时区mt,它应该看起来像这样,日期在顶部
April 10
23:00 Show#A
April 11
00:30 Show#B
01:30 Show#C
此时,它确实显示日期。除了 et 之外的时区中只有一些节目的日期不正确。没有包括时区et,因为它工作正常。
这是我尝试过的(我已将我的脚本放在小提琴https://jsfiddle.net/5bmoe4tq/ 中,因为我想让问题简短一些)但它似乎不起作用。
【问题讨论】:
-
我在您的帖子中没有看到任何 javascript。你有没有尝试过?
-
是的。我现在正在添加。
-
也不需要那些重复的 if/else 基本上做同样的事情
-
你的逻辑在你的
if($(time).attr('data-timezone') === 'nt')中有缺陷。这只检查页面中的第一个。与获取日期时间属性相同 -
我将完全重新开始,专注于迭代实例,为所有时区/所有节目使用一个进程
标签: javascript jquery html attributes timezone