From 97ebd19568e70135f2cf4218fc4c5cbb67c34e8a Mon Sep 17 00:00:00 2001 From: Nasser Date: Fri, 17 Jul 2020 16:46:37 +0430 Subject: [PATCH] accept persian number construct --- src/Verta.php | 59 +++++++++++++++++++++++++++++---------------------- 1 file changed, 34 insertions(+), 25 deletions(-) diff --git a/src/Verta.php b/src/Verta.php index c5252a1..15b4e30 100755 --- a/src/Verta.php +++ b/src/Verta.php @@ -199,41 +199,27 @@ class Verta extends DateTime { self::YEARS_PER_DECADE, ); + /** + * arabic number. + * + * @var array + */ + + protected static $arabicNumber = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']; + /** * persian number. * * @var array */ - protected static $persianNumber = array( - '۰', - '۱', - '۲', - '۳', - '۴', - '۵', - '۶', - '۷', - '۸', - '۹', - ); + protected static $persianNumber = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']; /** * english number. * * @var array */ - protected static $englishNumber = array( - '0', - '1', - '2', - '3', - '4', - '5', - '6', - '7', - '8', - '9', - ); + protected static $englishNumber = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; /***************************** CONSTRUCT ****************************/ @@ -245,6 +231,7 @@ class Verta extends DateTime { * @internal param timestamp $timestamp [optional] */ public function __construct($datetime = null, $timezone = null) { + $datetime = self::faToEnNumbers(self::arToEnNumbers($datetime)); if ($datetime === null) { $object = new DateTime(); $instance = $object->getTimestamp(); @@ -1443,11 +1430,33 @@ public function formatWord($format) * @param string $string * @return string */ - public static function persianNumbers($string) + public static function enToFaNumbers($string) { return str_replace(self::$englishNumber, self::$persianNumber, $string); } + /** + * Convert english numbers to persian numbers + * + * @param string $string + * @return string + */ + public static function faToEnNumbers($string) + { + return str_replace(self::$persianNumber, self::$englishNumber, $string); + } + + /** + * Convert english numbers to persian numbers + * + * @param string $string + * @return string + */ + public static function arToEnNumbers($string) + { + return str_replace(self::$persianNumber, self::$englishNumber, $string); + } + /***************************** COMPARISION ****************************/ /**