14

x seconds agoMySQLのタイムスタンプに基づいて表示したい。

timeagoというプラグインを見つけました

しかし、秒だけ表示する方法が見つかりません。

61秒でもいいし、300秒でもいい。timeago または純粋な jQuery/JavaScript を使用して出力を秒に変換する方法はありますか?

助けてくれてありがとう!

編集:

サンプルケース:

$time1 = "2014-02-02 23:54:04"; // plus PHP ways to format it.
//$time2 = NOW() , or date(); whatever. 

から何秒か取得したいだけです$time1

編集2:

作業コード:

<script type="text/javascript">
$(function(){
    var d2 = new Date();
    var d1 = new Date("2014-02-02 23:54:04");
    $("a#timedif").html("Diff. Seconds : "+((d2-d1)/100).toString());
    // note that you may want to round the value
});
</script>

出力しますDiff. Seconds : NaN

4

5 に答える 5

14

文字列を JavaScript の日付オブジェクトに解析すると仮定すると、(date2 - date1)/1000 を実行できます。

mysql 形式のタイムスタンプを解析するには、文字列を new Date() に入力するだけです。

 var d2 = new Date('2038-01-19 03:14:07');
 var d1 = new Date('2038-01-19 03:10:07');

 var seconds =  (d2- d1)/1000;

質問の編集2の修正:

<script type="text/javascript">
$(function(){
var d2 = new Date();
var d1 = new Date("2014-02-02 23:54:04");
$("a#timedif").html("Diff. Seconds : "+((d2-d1)/1000).toString());
 });

于 2014-02-02T22:05:32.373 に答える
1

そのプラグインに問題がなければ、数秒で動作するように少し変更できます

  var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) ||
    seconds < 90 && substitute($l.minute, 1) ||
    minutes < 45 && substitute($l.minutes, Math.round(minutes)) ||
    minutes < 90 && substitute($l.hour, 1) ||
    hours < 24 && substitute($l.hours, Math.round(hours)) ||
    hours < 42 && substitute($l.day, 1) ||
    days < 30 && substitute($l.days, Math.round(days)) ||
    days < 45 && substitute($l.month, 1) ||
    days < 365 && substitute($l.months, Math.round(days / 30)) ||
    years < 1.5 && substitute($l.year, 1) ||
    substitute($l.years, Math.round(years));

この部分では、秒に変換するだけで行きます

フィドルを参照してください: http://jsfiddle.net/zGXLU/1/

于 2014-02-02T22:06:14.843 に答える