私には2つの日付があります:
var first = '21-11-2012';
var second = '03-11-2012';
このようにフォーマットするための最良の方法は何ですか:
var first = '2012-11-21';
var second = '2012-11-03';
jQueryまたは単にJavaScriptを使用する必要がありますか?
私には2つの日付があります:
var first = '21-11-2012';
var second = '03-11-2012';
このようにフォーマットするための最良の方法は何ですか:
var first = '2012-11-21';
var second = '2012-11-03';
jQueryまたは単にJavaScriptを使用する必要がありますか?
これには jQuery は必要ありません。次のように JavaScript を使用するだけです。
function formatDate(d){
return d.split('-').reverse().join('-');
}
ただし、より再利用可能なコードが必要な場合は、JavaScript Date Objectの使用を検討してください。
基本的な文字列操作のために 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"
ため、これらのキャプチャされた部分の順序を逆にして、それらの間にハイフンを置きます。(入力文字列がその形式を満たさない場合、正規表現は一致せず、置換は行われません。)
first=first.split("-").reverse().join("-")
second=second.split("-").reverse().join("-")