我们允许用户在我们的 Web 应用程序中更改他们的首选语言环境。我使用这样的变量设置 dayjs() 语言环境:
var localeAbbr = '@server_generated_abbr';
dayjs.locale(localeAbbr);
但是,我们也让他们选择他们喜欢的一周的第一天(这可能与他们的语言环境和 dayjs 本地设置文件冲突)。然后如何覆盖单个 firstdayofweek 本地设置?我将如何应用以下变量?
var firstDayOfWeek = @server_generated_var;
更新
我发现我应该能够做到这一点:
dayjs.locale(localeAbbr, { weekStart: firstDayOfWeek });
如果仅使用日期操作函数,这在技术上是有效的,但它会使 format() 函数无用,总是导致 JS 错误。这是库中的一个错误,已在 GitHub 中提出,但显然从未得到解决。
Cannot read property '7' of undefined
我可以使用以下方法克服这个问题并“解决”我的问题(使用 ASP.Net 剃须刀)
dayjs.locale('@locale');
dayjs.Ls.@(locale).weekStart = @(firstDayOfWeek);
在我的情况下,它呈现并按预期工作。
dayjs.locale('en');
dayjs.Ls.en.weekStart = 1;
我想使用首选方法,但在修复错误之前,我不能。希望这可以帮助与我有同样问题的其他人。