0

私には2つの日付があります:

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

このようにフォーマットするための最良の方法は何ですか:

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

jQueryまたは単にJavaScriptを使用する必要がありますか?

4

3 に答える 3

5

これには jQuery は必要ありません。次のように JavaScript を使用するだけです。

function formatDate(d){
    return d.split('-').reverse().join('-');
}

ただし、より再利用可能なコードが必要な場合は、JavaScript Date Objectの使用を検討してください。

于 2012-06-23T14:27:49.893 に答える
2

基本的な文字列操作のために jQuery を考える必要はありません。標準の JS String メソッドで十分です。これが (私が推測するに) jQuery が実際に同等のメソッドを持たない理由です。

他の回答の正規表現.replace()または分割/逆/結合の概念は、どちらも1行で実行できます。リンク先の MDN ページのメソッドに慣れることをお勧めしますが、それまでの間:

first = first.replace(/^(\d\d)-(\d\d)-(\d\d\d\d)$/,"$3-$2-$1");

(同じsecond- 必要に応じて関数にカプセル化します。)

これは、正規表現を使用して日付のさまざまな部分を照合し、それらを逆にします。

更新 - 要求に応じて、使用した正規表現の説明:

^            // 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"ため、これらのキャプチャされた部分の順序を逆にして、それらの間にハイフンを置きます。(入力文字列がその形式を満たさない場合、正規表現は一致せず、置換は行われません。)

于 2012-06-23T14:42:56.903 に答える
1
first=first.split("-").reverse().join("-")
second=second.split("-").reverse().join("-")
于 2012-06-23T14:27:22.423 に答える