Действительно странное поведение при печати даты с php и drupal - PullRequest
1 голос
/ 29 октября 2010

Так что я просто пытаюсь напечатать день, месяц и год (на самом деле я не печатаю, я сравню затем с некоторыми датами, которые есть в базе данных, но печать тестирует), поэтому мой код выглядит так:

print($now = format_date(time(), "custom", "Ymd"));</p> <p>print(' '); </p> <p>print( substr($now, 0, 4)); //year</p> <p>print(' ');</p> <p>print(substr($now, 4, 6)); //month</p> <p>print(' ');</p> <p>print(substr($now, 6, 8)); //day

Я выполняю это в модуле Execute PHP Code в модуле Devel на сайте drupal.Вот что я получаю:

20101029 2010 1029 29

Итак, format_date работает, год и день в порядке, но как насчет месяца?почему он печатает 4 символа, а не 2, как указано?

Ответы [ 2 ]

2 голосов
/ 29 октября 2010

Подставка PHP равна string substr ( string $string , int $start [, int $length ] )

Таким образом, ваш код должен читаться как:

print(substr($now, 0, 4)); //year

print(' ');

print(substr($now, 4, 2)); //month

print(' ');

print(substr($now, 6, 2)); //day 

http://php.net/manual/en/function.substr.php

1 голос
/ 29 октября 2010

substr принимает $ string, $ start и необязательную длину $. Попробуйте использовать 2 вместо 6 в месяц и день.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...