2011-04-13 40 views
1

私はzendフレームワークを使用しています。私は2つの日付間の時間差を知りたいと思います。 私はstrtotimeを使ってコアPHPでそれを行う方法を知っています。時差Zendの2つの日付間の差

しかし、可能であれば、私はZendでそれを望みます。

例:これらは、日時書式の私の日付は、次のとおりです。

2011-04-13夜11時00分00秒

2011-04-14 15時45分〇〇秒

答えて

4

Zend_Datesub()方法があるようです。

sub($date, $part = null, $locale = null)
$date$partが 現在のオブジェクトの日からロケール$localeを持つ減算が。トリックを行う必要があります$の一環としてZend_Date::HOURを使用して

、私は考えます:

$num_month = $firstDate->sub($secondDate, Zend_Date::HOUR); 
追記として


strtotime()で作業する場合、日付がUNIX Timestampsを使用してreprensentedている - だけ1970年から行くことができます〜2038 (少なくとも32ビットシステムで)

DateTimeクラスで作業することが賢明でしょう。 (事実上)の日付の範囲を無制限に操作できます。

+1

機能的です。 Zend_Dateの作成とオブジェクトの作成が必要です。あなたはいつも答えを持っています:-) –

+1

Zend_Dateを使っているなら、Zend_Dateメソッドを使うべきです。もちろん、Zend_Dateで作業しない場合は...他のものを使用してください;-) *(必ずしもそうではありません^^)* –

4

なぜコアPHPでこのことができるのか、Zendでこのような機能を使いたいのですか?

コアPHPを使用してください。

+0

私が使用すると思いましたこの目的のためにZendと私はこれを達成するためのいくつかの関数が存在することを願っています....しかし、コアphpでは、それは常に良いと簡単です。 –

+3

なぜそこにいる人々がフレームワークを発明したのですか?私たちの人生を楽にするために、私は正しいのですか? – tawfekov

+1

しかし、あなたはフレームワークに相当するエコーを期待しません。単純な計算は常にコアで実行することができます –

0

おかげで、私は解決策をこのように実現することができます:

$firstDay = new Zend_Date('2011-04-13 23:00:00', 'YYYY-MM-DD h:i:s'); 

$lastDay = new Zend_Date('2011-04-14 15:45:00', 'YYYY-MM-DD h:i:s'); 

$diff = $lastDay->sub($firstDay)->toValue(); 

$days = ceil($diff/60/60); 

最終的に私は17の切り上げ値を得ることができるが、正確な差(16時間、45分)を得ることができませんでした