如何在 javascript 中显示日期的序号

How to display ordinal number for date in javascript

我目前正在为我网站上的弹出式日历实施 flatpickr,我的客户要求显示一种特定格式供他们自己使用,其中包括星期几和带序号后缀的日期。据我了解,我可以使用名为 altInput 的配置设置来实现这一点,并使用 altFormat 来指定如何显示它。

基于此,这是我的配置和实例化:

var config = {
    enableTime : false,
    dateFormat: 'Y-m-d',
    altInput: true,
    altFormat: 'l, jS F Y'
};

$(".pickr").flatpickr(config);

据我所知,显示的日期应该是这样的(以今天为选择日期):

Tuesday, 10th October 2017

然而,我实际上得到:

Tueaday 1000 October 2017

所以序数后缀选项(根据 PHP.net 是大写 S)似乎只显示两个零。就好像是把大写的S当成了小写的s一样,就是秒。

我是不是漏掉了什么?在 javascript 中是否有另一种显示序数后缀的方法?

S代表"Seconds, 2 digits"

而不是 jS,您需要 J:

"Day of the month without leading zeros and ordinal suffix"

看看 flatpickr 的 formatting documentation.

根据 Formatting Tokens 你应该在 altFormat 配置中使用参数 J 而不是 jS :

var config = {
    enableTime : false,
    dateFormat: 'Y-m-d',
    altInput: true,
    altFormat: 'l, J F Y'
};

我已经穿上 Fiddle 进行更多测试:https://jsfiddle.net/kxssqzu2/14/