- strtotime (php Date関数)がどのように機能するか知りたいですか?
- 文字列を「2012年9月15日」のようにタイムスタンプに解析する方法
- より良いアルゴリズムはありますか?
私の目的は、この関数をペルシア語に変更することです
PHPのソースコード(https://github.com/php/php-src)を参照し、関数を検索してその実装を確認できます。
アップデート
関数strtotime()https://github.com/php/php-src/blob/master/ext/date/php_date.c#L1324のアルゴリズムは次のとおりです。
よろしく!
strtotimeは英語の入力を受け入れるため、ペルシア語の入力「15(SOMETHING_PERSIAN)2012」を使用して、必要な文字列を置き換え(RegExpとswitchステートメントが必要だと思います)、「15(SOMETHING_ENGLISH)2012」にすることをお勧めします。そしてそれをstrtotimeに送信します
strtotime(php Date関数)がどのように機能するか知りたいですか?
ここに移動します:https ://github.com/php/php-src/blob/master/ext/date/lib/parse_date.c
を検索しtimelib_strtotime
ます。
それを忘れて、phpIntl拡張機能を使用してください。将来的にはphpコアの一部になります。
<?php
// format
$format = datefmt_create('fa_IR@calendar=persian', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Tehran', IntlDateFormatter::TRADITIONAL, 'yyyy/MM/dd HH:mm');
// time in locale as you wish
var_dump(datefmt_format($format, time())); // '۱۳۹۱/۰۲/۰۴ ۱۹:۱۵'
すべての言語でi18nのペルシア語をサポートする場合は、ICUプロジェクトをサポートしてください。
文字列を実際に解析するメソッドは、parse_date.reのscan()
メソッドにあります。そこには、すべてのstrtotime
キーワードとその動作が表示されます。
そのライブラリはhttps://github.com/derickr/timelibから含まれています。