2012-01-16 4 views
1

を持つ文字列からオブジェクトの作成日:私が持っている場合はPHPでJavaScriptを

$date = "2012-01-18 16:00"; 

私が行うことができます:JS(jQueryの)で

$newDate = new DateTime($date); 

を私は持っている:

var date = "2012-01-18 16:00"; 

理由私はできません:

var newDate = new Date(date); 

?これは私に無効な日付を返します。

+0

'var date =" 2012-01-18 16:00 "; console.log(新しい日付(日付)); ' は私にとってはうまくいきます、あなたはこの変数をどこに設置していますか? – SpYk3HH

答えて

3

その文字列がparsedされるために、あなたがそうあなたの元のコード修正する日付と時刻

var date = "2012-01-18T16:00"; 
var newDate = new Date(date); 

間Tが必要:

var date = "2012-01-18 16:00"; 
date = date.replace(" ", "T"); 
var newDate = new Date(date); 

DEMO


Dateコンストラクタには、年、月、日が続きます

var newDate = new Date(2012, 1, 18) 

しかし、それを稼働させるには、文字列を分割する必要があります。

+0

文字列「2012-01-18 16:00」を受け取っています。どうすればいい?私はこれに何を使わなければならないのですか? –

+0

@MarkFondy - 私の編集を参照 –

+0

非常にありがとう。そして、私はどのように長さを使用できますか? newDate.getMinutes()。length返り値は未定です。助けてくれてありがとう –

1

ます(ほとんど)ことができます。さらに良い

new Date(year, month, day [, hour, minute, second, millisecond ]); 

datejsが含まれており、この操作を行います。

Date.parse("2012-01-18 16:00"); 
1

Datejsは多くの日付入力を認識することができるオープンソースのJavaScriptのDateライブラリですがあなたの質問にあなたが提供したフォーマットを含むローカルタイムゾーン内でも動作します。あなたがそのライブラリを使用したくない場合は、あなたはまだ単純なように、Tを使用して日付文字列にスペースを置き換えることができ :この方法は、あなたの入力がGMTであるとすることを前提としていること

var date = "2012-01-18 16:00"; 
var newDate = new Date(date.replace(" ","T")); 

注意ローカルユーザの適切な時間数を減算または追加しますが、Datejsは適用されません。

+1

また、複数のvarステートメントを1つにまとめる方が良いでしょう。 'var date =" 2012-01-18 16:00 "、newDate = new Date(date.replace(" "、" T "));' – wecsam

関連する問題