首页 > 解决方案 > Fullcalendar 3.9.0 版本的问题,月份和日期值被交换

问题描述

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

超过 12 天的任何日子都不会明显显示。还有人经历过这个吗?

标签: datefullcalendardate-formattingsalesforce-lightningfullcalendar-3

解决方案


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

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

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

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


推荐阅读