2011-01-18 13 views
2

と時間をフォーマットするために、私はDrupalはこの形式で時刻を吐き出すことをJSONフィードを持っている:2010-12-16T04:41:35Zどのようにjqueryの/ javascriptの

どのように私はX分にそれをフォーマットする行くのです/時間前?

答えて

6

は私がsomething on this page will help youを考える

var t = jQuery.timeago("2010-12-16T04:41:35Z"); 

または

<time class="timeago" datetime="2008-07-17T09:24:17Z">July 17, 2008</time> 
<script type="javascript"> 
    jQuery(document).ready(function() { 
    jQuery("time.timeago").timeago(); 
    }); 
</script> 
+1

私はこのプラグインを使用しましたが、それは完全に動作し、非常に使いやすいです。あなたは$ .timeago.settings.minute = "a minute"を実行するだけで、文法を変更することができます。例えば。 – Maricel

2

のようなHTML要素のようprogramtically使用することができますtimeago jQuery pluginを見てみましょう。下に向かっていくつかのjQueryプラグインをフォーマットしています。がんばろう!

0

JSでregexp objectを使用して、独自の正規表現を作成し、元の文字列から時間 - 分 - 秒単位で区切り、必要な処理を行うことができます。

ヒント:actual_date - あなたの元の文字列の時間

0

は4時41分35秒の部分が正しいのでしょうか?またはタイムゾーンやものを考慮する必要がありますか?

基本的にこれが働くことができるので:

var str = "2010-12-16T04:41:35Z" 
var arr = str.split("T") 
arr[0] = arr[0].split("-") 
arr[1] = (arr[1].replace(/Z/ig,"")).split(":") 
var year = arr[0][0] 
var month = parseInt(arr[0][1],10)-1 
var day = arr[0][2] 
var hours = arr[1][0] 
var minutes = arr[1][1] 
var seconds = arr[1][2] 
var d = new Date(year, month, day, hours, minutes, seconds, 0); 
var now = (new Date()) 
var diffMS = now.getTime() - d.getTime() 
//alert ("difference in milliseconds: " + diffMS) 

var hoursago = diffMS/1000/60 
var ANDminutes = (diffMS - Math.floor(hoursago) * 1000*60)/1000 

alert (Math.floor(hoursago) + " hours and " + ANDminutes + " minutes ago") 
0
<shameless_plug> 

をここであなたのヒト化の時間差を与えるライブラリです。

https://github.com/layam/js_humanized_time_span

出力を使用すると、様々な時間帯で異なる出力形式を設定することができ、完全にカスタマイズ可能です。だから、可能性があり:

'10 seconds ago' 

または

'3 days and 2 hours ago' 

をあなたもカスタムの時間単位を設定することができます。

さらに、それはネイティブJSなので、どのフレームワークも依存しません。

</shameless_plug>