Skip to content

Убран несуществующий статический метод Date::createFromText#91

Open
gromdron wants to merge 1 commit intobitrix-tools:mainfrom
gromdron:patch-2
Open

Убран несуществующий статический метод Date::createFromText#91
gromdron wants to merge 1 commit intobitrix-tools:mainfrom
gromdron:patch-2

Conversation

@gromdron
Copy link
Contributor

Такого метода не существует в последней стабильной версии битрикса.

Кстати очень даже жаль, потому что часто приходится работать с разными системами и использовать разные форматы дат, поэтому в коде появляется такое:

use Bitrix\Main\Type\DateTime;

$date = DateTime::createFromTimestamp(strtotime("end of next week"));

@neckita39
Copy link
Collaborator

Метод createFromText находится в родительском классе \Bitrix\Main\Type\Date::createFromText и доступен для использования как через класс \Bitrix\Main\Type\Date, так и через наследника \Bitrix\Main\Type\DateTime.

Проверьте, пожалуйста

@irpsv irpsv requested a review from neckita39 February 27, 2026 12:42
@gromdron
Copy link
Contributor Author

@neckita39 ваша правда - я поспешил назвать метод несуществующим.
Однако описанный метод работает совершенно не так как описано и только вводит в заблуждение.

Описание сигнатуры метода (из класса Date):

namespace Bitrix\Main\Type;

class Date
	/**
	 * Creates Date object from Text (return array of result object)
	 * Examples: "end of next week", "tomorrow morning", "friday 25.10"
	 *
	 * @param string $text
	 * @return DateTime|null
	 */
	public static function createFromText($text)
}

Проверочный код:

use Bitrix\Main\Type\Date;

var_dump(Date::createFromText("end of next week"));
var_dump(Date::createFromText("tomorrow morning"));
var_dump(Date::createFromText("friday 25.10"));

Результат:

NULL
NULL
NULL

Однако для русскоязычной коробки

use Bitrix\Main\Type\Date;

var_dump(Date::createFromText("вчера"));

Выдал:

object(Bitrix\Main\Type\DateTime)#263 (2) {
  ["value":protected]=>
  object(DateTime)#261 (3) {
    ["date"]=>
    string(26) "2026-02-26 19:00:00.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(13) "Europe/Moscow"
  }
  ["userTimeEnabled":protected]=>
  bool(true)
}

Что очень странно, учитывая что по москве сейчас 15:50, а ссылается на 19:00

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants