【问题标题】:Issue with Fullcalendar 3.9.0 version, Month and day value is swappedFullcalendar 3.9.0 版本的问题,月份和日期值被交换
【发布时间】:2019-09-23 12:20:32
【问题描述】:

我正在 Salesforce 闪电组件中试用 FullCalendar 3.9.0,当我通过标准的 salesforce 开始和结束日期时,它会显示在闪电组件的日历上,但是 fullcalendar js 的时刻会弄乱它,例如 10.9 9 月 10 日被放置在 10 月 9 日的盒子里。 为什么插件会像这样更改月份和日期是否存在一些问题?

12 岁以上的任何日子都不会明显显示。其他人有过这种经历吗?

【问题讨论】:

    标签: date fullcalendar date-formatting salesforce-lightning fullcalendar-3


    【解决方案1】:

    您似乎遇到了日期格式问题。听起来好像您以dd.mm.yyyy 格式(或类似格式)的字符串形式提供日期,但浏览器将其解释为mm.dd.yyyy。您甚至可能会在浏览器控制台中看到与此相关的警告。

    如果您将日期作为字符串发送,浏览器无法知道您的意思是 9 月 10 日还是 10 月 9 日,所以它只能猜测。

    背景:一些文化(例如英国和欧洲大部分地区)使用dd.mm.yyyy,一些使用mm.dd.yyyy(例如美国)来表示日期(对人类),还有一些使用其他东西。元素的顺序、使用的分隔符以及在不同情况下何时使用特定格式的约定各不相同。正如您现在所了解的,将您的数据与这些特殊格式之一联系起来是个坏主意。计算机无法猜测您打算用数据代表哪种文化。

    虽然可以告诉浏览器如何正确解释您的模糊日期,但简单、万无一失的解决方案是不要一开始就使用模糊日期格式。相反,请使用明确的日期格式,例如 ISO 8601 - 即基本上是 yyyy-mm-dd(用于日期部分)。

    【讨论】:

    • 嗨,我的想法是一样的,这就是为什么我试图以上述形式将其格式化为查看 js toDate 以在 dd.mm.yyyy 中解析它,我正在使用的 sObject 正在抛出如果我尝试对其进行格式化,因为它作为响应发送到闪电组件,但确实是一个错误,它最终作为 json 传递,所以如果我只是将 sObject 作为字符串发送回来,它应该可以工作。我使用了 fullcalendar.io 销售人员提供的大部分示例,但可以重写以解决此问题。感谢回复
    • 我设法通过在本质上同步和下面以 Salesforce 顶点格式获取时刻 js 来解决它 e.StartDateTime= new Moment(String.valueOf(e.StartDateTime),'YYYY -dd-MM HH:mm:ss').toDatetime();我从这里找到的时刻顶点github.com/Click-to-Cloud/Moment.apex/blob/master/src/classes/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2021-12-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多