gpt4 book ai didi

javascript - isBetween 使用时刻时区

转载 作者:行者123 更新时间:2023-11-29 20:55:26 33 4
gpt4 key购买 nike

我正在尝试使用 moment-timezone 进行一些基于小时的计算。

var time = moment.tz() // get the now
var start = moment.tz('16:00:00', 'HH:mm:ss', '');
var end = moment.tz('16:10:00', 'HH:mm:ss', '');

if(time.isBetween(start, end)) {
console.log('yep')
}

但输出总是undefined

我已经尝试了无数种方法来让它工作,但都无济于事。

moment.tz(moment.now(), 'Europe/Lisbon').isBetween('16:00:00','17:30:00') // to get in ms

错误

moment.tz('Europe/Lisbon').isBetween('16:00:00','17:30:00')

错误

moment.tz(moment.tz('Europe/Lisbon').format('HH:mm:ss'), 'Europe/Lisbon').isBetween('16:00:00','17:30:00')

我做错了什么?我使用时区是因为我需要许多不同地方的实际时间。

谢谢大家

最佳答案

作为moment.tz文档状态:

The moment.tz constructor takes all the same arguments as the moment constructor, but uses the last argument as a time zone identifier.

因此您必须传递一个有效的时区标识(例如 'Europe/Lisbon')而不是 ''

'16:00:00''17:30:00' 在您的 isBetween 中将代表今天的 local '16:00:00',作为 Default节状态。使用 moment.tz(String, String, String); 代替使用 zone 进行解析。

这里有一个片段,显示了如果当前时间在区域中的给定范围之间,您将如何获得:

function update() {
var tmz = $("#tmz").val();
var fmt = 'HH:mm:ss';

var time = moment.tz(tmz);
var start = moment.tz('16:00:00', fmt, tmz);
var end = moment.tz('17:30:00', fmt, tmz);

$(".time").text(time.format(fmt));
$("#zone").text(tmz);
if(time.isBetween(start, end)) {
console.log('yep');
$("#bool").text("IS");
} else {
$("#bool").text("IS NOT");
}
}

$("#tmz").on("change", update);
update();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.14/moment-timezone-with-data-2012-2022.min.js"></script>

<select id="tmz">
<option value="America/Los_Angeles">America/Los_Angeles</option>
<option value="America/New_York">America/New_York</option>
<option value="Europe/London">Europe/London</option>
<option value="Europe/Rome">Europe/Rome</option>
<option value="Asia/Tehran">Asia/Tehran</option>
<option value="Asia/Kolkata">Asia/Kolkata</option>
<option value="Australia/Sydney">Australia/Sydney</option>
</select>

<br/>
Now is <span class="time"></span> in <span id="zone"></span><br/>
<span class="time"></span> <span id="bool"></span> between 16:00:00 and 17:30:00

关于javascript - isBetween 使用时刻时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49538849/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com