2016-07-13 3 views
0

私はこの関数を書いて、日付文字列を返します。それは一度実行された後、 "... clientTime()は関数ではありません..."というエラーが表示されます。既に。私は何をすべきか分からない。新しいDate()を使用してこのJavascript関数が1回だけ実行されるのはなぜですか?

申し訳ありませんがここでは示していませんが、変数は外部変数としてグローバル変数として宣言されています。

function clientTime() { 
     var now = new Date(); 
     dd = now.getDate(); 
     MM = now.getMonth()+1; 
     if(MM < 10) { 
     MM = '0'+MM.toString(); 
     } 
     yyyy = now.getFullYear(); 
     hh = now.getHours(); 
     mm = now.getMinutes(); 
     if(mm < 10) { 
      mm = '0'+mm.toString(); 
     } 
     ampm = ""; 
     // determine if it's currently am or pm 
     if(hh < 12) { 
     hh = '0'+hh.toString(); 
     ampm = "AM"; 
     }else if(hh > 12) { 
     ampm = "PM"; 
     } 
     // modify hours change from 24 to 12 format 
     switch (hh) { 
     case (12): 
      hh = 00; 
     case (13): 
      hh = 01; 
     case (14): 
      hh = 02; 
     case (15): 
      hh = 03; 
     case (16): 
      hh = 04; 
     case (17): 
      hh = 05; 
     case (18): 
      hh = 06; 
     case (19): 
      hh = 07; 
     case (20): 
      hh = 08; 
     case (21): 
      hh = 09; 
     case (22): 
      hh = 10; 
     case (23): 
      hh = 11; 
     } 
     return(MM+'/'+dd+'/'+yyyy+' '+hh+':'+mm+' '+ampm); 
    } 

function alertClientTime() { 
    alert(clientTime()); 
} 

alertClientTime(); 
+3

[Works for me](https://jsfiddle.net/zvewca11/)。あなたが表示していないコードのどこかに、 'clientTime = ...'がなければなりません。例えば、関数参照に別のものを上書きしています。 –

+0

@ T.J.Crowderそれはあなたのために複数回働いていますか? – joehungjohn

+0

@ T.J.Crowderは、その関数の戻り値でclientTime = clientTime()としたい場合は無効です。 ? – joehungjohn

答えて

3

は、それが無効ですその関数の値はclientTime = clientTime();

それは無効ではないのですが、それはそれはもう機能しません、次のパスに意味、あなたが説明したエラーを取得した結果、と関数参照を上書きします。したがって、割り当て先の変数に別の名前を使用してください:

var theTime = clientTime(); 
+0

助けてくれてありがとう – joehungjohn

0

期待どおりに動作するはずです。

ところで

クイックヒント:
hh % 12(剰余演算子) はあなたの全体のスイッチケース:)と同じ結果を生成

+0

おかげで、いつも物事を短縮する方法を使用することができます。 – joehungjohn

0
あなたはおそらく、関数名が重複しているかどうかを確認、あなたのコードのどこかに、あなたの関数を上書きしている

かそれは別の場所と呼ばれています。私がこのコードを意図どおりに動作させるとすれば。また、あなたはコードを短くすることができますが、@クリスNordqvistは私

EDIT前に、と言った:私が返さをしたい場合日付を私はmoment.jsを使用することをお勧め多くを使用している場合、それは超便利だ

+0

他の人もそれを言及してくれてありがとう – joehungjohn

+0

あなたは瞬間を見てみるべきです.js、あなたに多くの時間を節約することができます –

+0

右の面白いことは、私はクライアントの時間を必要としない可能性があります...私は、 mタイムゾーンを扱い、注文を送ったり、受け取ったりすることがあります。それはちょうど瞬間です.jsはhaです:) – joehungjohn

関連する問題