2

我正在使用 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() 或类似的东西中指定格式字符串:

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

但我更喜欢使用 d 选项。

谢谢你的帮助,皮尼。

4

1 回答 1

2

这里有几个问题:

1) wiki 文档与http://code.google.com/p/datejs/主页上的文档不同,因为主页描述了您想要作为自定义说明符的说明符,而不是标准说明符。wiki 上的文档似乎建议使用多个字符应该触发自定义模式,但正如您所指出的那样,这不会发生。我没有看到任何报告此问题的错误,所以也许您想自己这样做并收到回复通知: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>

如果您报告问题,您可能会提出这个问题,因为包含仅位于“测试”文件夹中的文件以获得所需功能似乎不可靠。

于 2011-04-16T06:40:15.273 回答