在javascript中更改日期格式(jquery)

在javascript中更改日期格式(jquery),javascript,jquery,Javascript,Jquery,我有两个约会: var first = '21-11-2012'; var second = '03-11-2012'; 以下哪种格式最好: var first = '2012-11-21'; var second = '2012-11-03'; 我应该使用jQuery还是简单地使用JavaScript?您不需要jQuery,只需像这样使用JavaScript: first=first.split("-").reverse().join("-") second=second.split("-

我有两个约会:

var first = '21-11-2012';
var second = '03-11-2012';
以下哪种格式最好:

var first = '2012-11-21';
var second = '2012-11-03';

我应该使用jQuery还是简单地使用JavaScript?

您不需要jQuery,只需像这样使用JavaScript:

first=first.split("-").reverse().join("-")
second=second.split("-").reverse().join("-")
function formatDate(d){
    return d.split('-').reverse().join('-');
}

不过,如果你想使用更多的可重用代码,考虑使用.< /p>

不需要考虑基本字符串操作的jQuery:这是远远不够的,我想这就是为什么jQuery实际上没有等效的方法。

其他答案中的regex.replace或split/reverse/join概念都可以在一行中完成。我建议您熟悉我链接到的MDN页面上的方法,但同时:

first = first.replace(/^(\d\d)-(\d\d)-(\d\d\d\d)$/,"$3-$2-$1");
第二个相同-如果需要,封装在函数中

这将使用正则表达式匹配日期的不同部分并将其反转

更新-根据要求,对我使用的正则表达式进行解释:

^            // match beginning of string
(\d\d)       // match two digits, and capture them for use
             // in replacement expression as $1
-            // match the literal hyphen character
(\d\d)       // match two digits, and capture for use as $2
-            // match the literal hyphen character
(\d\d\d\d)   // match four digits, and capture for use as $3
$            // match end of string

因为模式从字符串的开头到结尾都匹配,所以整个字符串将被替换。括号中的表达式部分被捕获,可以被称为$1、$2等。如果在替换字符串中使用,则按照它们在表达式中出现的顺序进行编号,因此$3-$2-$1反转这些捕获片段的顺序,并在它们之间放置连字符。如果输入字符串不符合该格式,则正则表达式将不匹配,并且不会进行替换。

这里有一个问题可以回答这个问题。[ [1]:通过删除冗余部分来简化它不会有什么坏处=。如此简洁完美的方式:+1您可以添加几行解释您的正则表达式吗?这肯定会帮助像我这样的人并捕获供以后使用?@Jashwant-是的。但完整的解释远远超出了这个问题的范围,所以我建议您搜索一些正则表达式教程als可能是这样的:。如果您想使用一些示例,可以使用一些。尽管大多数正则表达式语法在不同语言中很常见,但列出了适用于JS的特定语法。