使用datejs插件基于文化格式化日期

时间:2011-04-16 01:13:40

标签: javascript jquery jquery-plugins datejs

我正在使用datejs库,我的日期格式有问题。 我需要在没有小时的情况下今天打印到屏幕上。 当我运行这一行时:

Date.today().toString('d')
我得到了日期的日期部分(即15)。

如果你看一下他们指定的文件,那么'd'作为标准日期应该放在文化上 - 这正是我想要的。 http://code.google.com/p/datejs/wiki/FormatSpecifiers

如果我正在使用

,我希望打印 mm / dd / yyyy
<script type="text/javascript" src="/scripts/date.js"></script>

如果我使用en-GB

<script type="text/javascript" src="/scripts/date-en-GB.js"></script>

打印 dd / mm / yyyy

我知道我可以在tostring()或类似的东西中指定formatstring:

(Date.today().toString(Date.CultureInfo.formatPatterns.shortDate)

但我更喜欢使用d选项。

感谢您的帮助, 皮尼。

1 个答案:

答案 0 :(得分:2)

这里有几个问题:

1)wiki文档与http://code.google.com/p/datejs/主页上的文档不同,主页面描述了您想要作为自定义说明符的说明符,而不是标准说明符。维基上的文档似乎表明使用多个字符应该触发自定义模式,但这不会发生,因为您也指出。我没有看到任何报告这个错误,所以也许你想自己这样做并收到回复通知:http://code.google.com/p/datejs/issues/list

2)你应该可以Date.today().toShortDateString();但是这里似乎有一个错误(在所有文化文件中)。来源列表:

Date.prototype.toShortDateString=function(){
    return this.toString(Date.CultureInfo.formatPatterns.shortDatePattern);
};

...但格式模式应为Date.CultureInfo.formatPatterns.shortDate(或模式应以不同方式定义或与同义词定义)。请参阅http://code.google.com/p/datejs/issues/detail?id=116

3)我找到的唯一一个可以通过缩写字母获得“自定义”说明符支持的地方还包括test / scripts / date-functions.js文件。

<script type="text/javascript" src="build/date-en-US.js"></script>
<script type="text/javascript" src="test/scripts/date-functions.js"></script>
<script>
alert(Date.today().dateFormat('d'));
</script>

如果您报告此问题,可能会提出此问题,因为包含仅位于“test”文件夹中的文件以获得您想要的功能似乎不可靠。