web-dev-qa-db-ja.com

日付フィールドオブジェクトの値を取得する方法

日時オブジェクトは

_[start_time] => Array
                (
                    [0] => Array
                        (
                            [value] => Drupal\Core\Datetime\DrupalDateTime Object
                                (
                                    [formatTranslationCache:protected] => 
                                    [inputTimeRaw:protected] => 
                                    [inputTimeAdjusted:protected] => 
                                    [inputTimeZoneRaw:protected] => 
                                    [inputTimeZoneAdjusted:protected] => 
                                    [inputFormatRaw:protected] => 
                                    [inputFormatAdjusted:protected] => 
                                    [langcode:protected] => en
                                    [errors:protected] => Array
                                        (
                                        )

                                    [dateTimeObject:protected] => DateTime Object
                                        (
                                            [date] => 2017-03-17 02:04:03.000000
                                            [timezone_type] => 3
                                            [timezone] => UTC
                                        )

                                    [stringTranslation:protected] => 
                                )
_

取得方法[date] => 2017-03-17 02:04:03.0000 ??????

print_r($ruleContentNew[0]['start_time'][0]['value']->getValue());die;を使用してみましたが、エラーが発生します。

2
Sugandh Khanna

試す

$ node-> get( 'start_time')-> getValue();

これは実際に配列を提供します。配列を検査/ダンプすると、このような値を取得できることがわかります。

$node->get('start_time')->getValue()[0]['value'];

または、単に$node->start_time->value;

注:コアのデフォルトの日付フィールドを使用しており、ノードを使用していると想定しています。従って $node、そしてまた注目に値する、通常あなたの日付マシン名はfield_something。 OPerがcontribまたはカスタムモジュールを使用していると思います。

日付フィールドに開始時刻と終了時刻を設定できるcontribモジュールを使用している場合は、おそらくdiffソリューションが必要になります。

7
No Sssweat

試す

$node->start_time->value;

またはそれが複数の値の場合

$values = $node->get('start_time')->getValue();
2
Yusef