【问题标题】:Using moment.js trying to create an event in native IOS calendar使用 moment.js 尝试在本机 IOS 日历中创建事件
【发布时间】:2014-09-12 06:45:40
【问题描述】:

我已使用“datetime-local”输入从用户那里获取开始日期和结束日期以放入本地日历。这是我获取和格式化“本地日期时间”的代码:

    var s = $("#startDate").val();
    var startDate = moment(s).toDate();
    var e = $("#endDate").val();
    var endDate = moment(s).toDate();

此代码采用正确的日期,但它将时间设置为全天事件。例如,如果我输入 2014 年 7 月 21 日的 1:00 点作为开始日期,然后输入 2014 年 7 月 22 日的 1:00 点,它将在 2014 年 7 月 21 日创建一个全天事件.

这是JSFiddle

【问题讨论】:

  • 如果你碰巧在使用 cordova/angular,你可以使用这个 API 来管理你在 ios 或 android 上的日历:ngcordova.com/docs/#Calendar

标签: javascript html datetime input momentjs


【解决方案1】:

您似乎有一个错字。通过e 构建endDate,而不是s

var s = $("#startDate").val();
var startDate = moment(s).toDate();
var e = $("#endDate").val();
var endDate = moment(e).toDate(); // <==== this line had used the wrong variable

或者,您可以改为内联调用这些以避免混淆:

var startDate = moment($("#startDate").val()).toDate();
var endDate = moment($("#endDate").val()).toDate();

至于为什么这会造成“全天事件”——我不能绝对肯定,因为我不熟悉您使用的特定日历 API。但是,由于您发送的开始时间和结束时间相同,因此可能会将其解释为全天事件。我相信修正错字会解决问题。

【讨论】:

  • 我更改了它,但它仍然说这是一整天的活动。我会继续检查东西。非常感谢您的帮助,马特。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多