【发布时间】:2011-02-27 19:18:57
【问题描述】:
我有一个日期字符串“2010 年 2 月 28 日星期日”,我想将其转换为格式为 @ MM/DD/YYYY 但不知道如何转换的 js 日期对象。有什么建议?
【问题讨论】:
-
也许 split() 更快,并且您可以编写更短的代码:)
标签: javascript jquery string date object
我有一个日期字符串“2010 年 2 月 28 日星期日”,我想将其转换为格式为 @ MM/DD/YYYY 但不知道如何转换的 js 日期对象。有什么建议?
【问题讨论】:
标签: javascript jquery string date object
我会选择date.js,否则你需要使用自己的格式化函数。
【讨论】:
var stringDate = "Sunday, February 28, 2010";
var months = ["January", "February", "March"]; // You add the rest :-)
var m = /(\w+) (\d+), (\d+)/.exec(stringDate);
var date = new Date(+m[3], months.indexOf(m[1]), +m[2]);
数组上的indexOf 方法仅在较新的浏览器上受支持(即不支持 IE)。您需要自己进行搜索或使用提供相同功能的众多库之一。
此外,代码缺少任何应添加的错误检查。 (字符串不匹配正则表达式,不存在月份等)
【讨论】:
如果您使用 jQuery 运行,则可以使用 datepicker UI 库的 parseDate 函数将字符串转换为日期:
var d = $.datepicker.parseDate("DD, MM dd, yy", "Sunday, February 28, 2010");
然后用formatDate方法跟进,得到你想要的字符串格式
var datestrInNewFormat = $.datepicker.formatDate( "mm/dd/yy", d);
如果你没有使用 jQuery,当然它可能不是最好的计划,因为你需要 jQuery 核心以及 datepicker UI 模块......最好遵循上面 Segfault 的建议来使用 date.js .
HTH
【讨论】:
如果只需要一次,加载插件就有点过头了。
对于日期“dd/mm/yyyy”,这对我有用:
new Date(d.date.substring(6, 10),d.date.substring(3, 5)-1,d.date.substring(0, 2));
mm/dd/yyyy只需反转月份和日期,语法为
new Date(y,m,d)
【讨论】:
我使用 javascript 日期函数 toLocaleDateString 来获取
var Today = new Date();
var r = Today.toLocaleDateString();
r 的结果将是
11/29/2016
更多信息请访问: http://www.w3schools.com/jsref/jsref_tolocaledatestring.asp
【讨论】:
使用 moment js 进行任何日期操作。
console.log(moment("Sunday, February 28, 2010").format('MM/DD/YYYY'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
【讨论】: