2017-01-06 12 views
-1

助けが必要です。私は、javascript/Jqueryを使用して日付の時刻をフォーマットしようとしていますが、それは起こっていません。私は以下のコードを説明しています。ここでjavascript/Jqueryを使用して既存の日付をフォーマットする方法

<div id="divID"></div> 
    <script> 
     var formatDate = function(date){ 
      return date.getDate() + "/" + date.getMonth() + "/" +date.getYear() + " "+ date.getHours() + ":" + date.getMinutes() + ":" + date.getMintutes() + ":" + date.getSeconds(); 
     } 
     var timestamp="2016-12-16 07:58:30 AM "; 
     var date= new Date(timestamp); 
     document.getElementById('divID').innerHTML = formatDate(date); 
    </script> 

私は、既存の時間2016-12-16 07:58:30 AMを持っていると私は16-12-2016 07:58:30 AMに変更する必要がありますが、ここで私は、適切なoutput.Pleaseが私を助けることができませんでした。

+0

という名前のライブラリを使用することができますhttps://github.com/phstc/jquery-dateFormat – rahulsm

+3

'moment.js'を使うことができます。http://momentjs.com/とても簡単です。 – Ionut

答えて

1

あなたのコードは、いくつかの問題があります。

  • あなたは構文エラーを持っているが、あなたはgetMintutes()
  • を呼んでいるあなたは二回分を表示しようとしているように見えるので、あなたは、これらの呼び出しのいずれかを削除することができます
  • getFullYear()はあなたが日付値を区切るために-ない/を使用する必要がありますgetYear()
  • より良いあなたのニーズに適合します。
  • hours < 12
  • あなたのタイムスタンプ文字列が有効でない場合は、チェックすることにより、文字列の末尾にAMまたはPMを追加することができます。それは 'AM'または 'PM'を含んではいけません - なぜ、Firefoxでコードが動作しないのですか?

    var formatDate = function(date) { 
     
        return date.getDate() + "-" + date.getMonth() + "-" + date.getFullYear() + " " + ('0' + date.getHours()).slice(-2) + ":" + ('0' + date.getMinutes()).slice(-2) + ":" + ('0' + date.getSeconds()).slice(-2) + ' ' + (date.getHours() < 12 ? 'AM' : 'PM'); 
     
    } 
     
    
     
    var timestamp = "2016-12-16 07:58:30"; 
     
    var date = new Date(timestamp); 
     
    document.getElementById('divID').innerHTML = formatDate(date);
    <div id="divID"></div>

    あなたは、日付の書式設定ロジックを簡単にするためのライブラリを使用することができますが、それは時に完全にライブラリをロードするために、むしろ無駄です:念頭に置いて

、これを試してみてください1行のコードがうまく動作します。

+0

また、タイムスタンプは '' 2016-12-16 07:58:30 "" AM "なし" – d3vi4nt

+0

ここにAM/PM'がありません。 – satya

+0

また、AM/PMが必要です。 – satya

0

jQuery dateFormatは別のプラグインです。 <script>タグを使用して明示的にロードする必要があります。

1

使用しているタイムスタンプは無効な日付を返しますので、AMを削除する必要があります。 moment.jsを使用して、あなたがこのようにそれを行うことができます。

var timestamp = "2016-12-16 07:58:30"; 
 
var formattedDate = moment(timestamp).format('DD-MM-YYYY h:mm:ss A'); 
 
console.log(formattedDate);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.5.1/moment.min.js"></script>

+0

Firefoxの日付が無効です。 – satya

+0

@satya、 'timestamp'から' AM'を削除しましたか?答えのコードが機能するからです。 'Run code snippet'ボタンを押すと実際の動作を確認できます。また、Firefoxでも。 – Ionut

0

をあなたがこのプラグインをチェックしmoment.jshttp://momentjs.com/

var date = new Date(); 
moment(date).format('DD-MM-YYYY HH:mm:ss A') 
関連する問題