在Javascript中将日期转换为字符串

8
我正在寻找一种将JavaScript Date对象转换为字符串的方法。我正在将我的网站从Ruby转换为服务器端JavaScript,并且我正在寻找类似于Ruby、C和许多其他语言中的strftime的东西。
我发现了许多简单的脚本来进行此类转换,但如果有标准方法,我宁愿不使用自定义实现。
我没有使用JavaScript框架。我使用Mozilla Rhino,但是尽可能地避免使用Java库,以便轻松移动我的代码。
我想能够指定字符串的格式,因为我想将其嵌入句子中。我想能够插入任意的"on"和"at",并使用星期的完整名称,而不仅仅是缩写形式。因此,toString()不足以满足我的要求。

还有一个漂亮的日期库(http://ejohn.org/blog/javascript-pretty-date/)。 - Mottie
6个回答

9

有一个免费而且非常棒的JavaScript库叫做Datejs,它可以提供各种格式化和解析功能(请参见 FormatSpecifiers 文档)。


2
虽然我更喜欢不使用外部库,但这正是我所需要的。可悲的是,他们将其标记为alpha版本,并且已经2年没有更新了。 - wvdschel
2
我明白你的意思,但你可以直接下载最新版本并使用其中的代码作为参考来构建自己的代码。它们也有测试(http://www.datejs.com/test/)。这是一个很多人都在使用的好库。 - Josh Stodola
2
更好的是,开始自己更新它。你将拥有一个很棒的JS日期库,通过改进它并使你的改进对我们所有人都可用,我们将更容易地完成任务,而你将获得互联网的名声。你无法用金钱来衡量互联网的名声。 - Paul D. Waite
1
虽然这个库非常好,但是考虑到这个具体情况它有太多的特性超出了我的需求,所以我决定不使用它。不过,将来我会在其他项目中使用它。 - wvdschel

6

JavaScript中没有内置的功能可以像strftime一样格式化日期的显示。

最接近的功能是Date().toLocaleString(),它返回一个字符串形式的日期,根据本地时区进行格式化。


2

日期对象具有内置的toString方法:

alert(new Date().toString())

"Sat Dec 19 2009 08:23:33 GMT-0800 (太平洋标准时间)"

2

MomentJS具有非常强大的时间格式选项,并且最近已经得到了更新。


1

你可以使用

new Date().toString()

...以获取本地化的日期输出。


我应该补充说明,我想能够指定字符串的格式,因为我想将其嵌入到句子中。我希望能够插入任意的“on”和“at”,并且显示完整的星期几名称,而不仅仅是它的缩写。 - wvdschel
为什么这么多人投赞成票?这并不灵活。他说他需要类似的东西。 - Josh Stodola
不,这是他最初问题的一部分。 - Josh Stodola

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接