在与时区偏移量比较日期之前
Moment.js .isBefore comparing dates with a time zone offset
需要比较的两个时刻是:
-
今天现在在某个时区(Wed Oct 12 2016 08:42:19 GMT+0000)
-
日历中的选定日期(例如2016-10-11)
我是这样做的:
var date = '2016/10/12'; // october 11
var offset = '0'; // time zone offset in minutes, 0 = GMT
var dateToday = moment().utcOffset(offset); // get a moment now with the time zone offset
var selectedDate = moment(date, ["YYYY-MM-DD"]).utcOffset(offset); // and a moment that is the date of the day selected
alert(dateToday);
alert(selectedDate);
if (selectedDate.isBefore(dateToday, 'day')) {
alert('That date is in the past!');
} else {
alert('Great!');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://momentjs.com/downloads/moment.js"></script>
问题似乎是,因为我在巴黎时间(+02:00),我选择任何低于巴黎时间(+02:00)的偏移量,例如GMT(+00:00),然后将选择日期设置为-1天在过去的10:00PM。
所以我的问题是我如何正确地检查一个日期(2016-10-12 GMT)是否在过去?
更新:
我现在已经解决了这个问题,通过提取日期,不管时区,使用format函数。然后我创建了全新的时刻,将日期字符串显式地传递给这些时刻,如下所示:
var dateToday = moment().utcOffset(offset); // get a moment now with the time zone offset
var selectedDate = moment(date, ['YYYY-MM-DD']); // and a moment that is the date of the day selected
var dateToday = dateToday.format('YYYY-MM-DD');
var selectedDate = selectedDate.format('YYYY-MM-DD');
var dateToday = moment(dateToday, ['YYYY-MM-DD']);
var selectedDate = moment(selectedDate, ['YYYY-MM-DD']);
如何设置所选日期的小时和分钟00:00或为其分配偏移量?
var date = new Date();
var offset = date.getTimezoneOffset() * (-1)
selectedDate.add(offset, "hours");
相关文章:
- Javascript元标记日期比较和重定向
- javascript中的日期比较
- Node.js谷歌云平台数据存储日期比较
- Javascript日期比较奇怪的行为
- 不显眼的日期比较验证器
- 日期比较未按预期工作
- 使用 Javascript 进行日期比较
- 为什么我的日期比较函数会抛出错误
- Javascript日期比较很奇怪
- 高图表两个日期比较
- 日期比较出错
- 奇特的 JavaScript 日期比较输出
- Javascript日期比较错误
- 启动日期选择器日期比较错误(英国/美国格式错误)
- HTML将参数传递给javascript函数,然后javascript函数进行日期比较,然后javascript返回以H
- Javascript中的日期比较类似于字符串比较
- Javascript和SQLite中的日期比较
- 原生javascript中的ISO日期比较
- javascript + jquery中的日期比较
- 日期比较在某些浏览器中不起作用- Javascript