5
  1. strtotime (php Date関数)がどのように機能するか知りたいですか?
  2. 文字列を「2012年9月15日」のようにタイムスタンプに解析する方法
  3. より良いアルゴリズムはありますか?

私の目的は、この関数をペルシア語に変更することです

4

5 に答える 5

8

PHPのソースコード(https://github.com/php/php-src)を参照し、関数を検索してその実装を確認できます。

アップデート

関数strtotime()https://github.com/php/php-src/blob/master/ext/date/php_date.c#L1324のアルゴリズムは次のとおりです。

よろしく!

于 2012-04-12T08:12:10.963 に答える
3

strtotimeは英語の入力を受け入れるため、ペルシア語の入力「15(SOMETHING_PERSIAN)2012」を使用して、必要な文字列を置き換え(RegExpとswitchステートメントが必要だと思います)、「15(SOMETHING_ENGLISH)2012」にすることをお勧めします。そしてそれをstrtotimeに送信します

于 2012-04-12T08:06:25.233 に答える
3

strtotime(php Date関数)がどのように機能するか知りたいですか?

ここに移動します:https ://github.com/php/php-src/blob/master/ext/date/lib/parse_date.c

を検索しtimelib_strtotimeます。

于 2012-04-12T08:13:53.767 に答える
3

それを忘れて、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プロジェクトをサポートしてください。

phpintl拡張子

icu-project.org

于 2012-04-23T14:48:53.600 に答える
2

文字列を実際に解析するメソッドは、parse_date.reのscan()メソッドにあります。そこには、すべてのstrtotimeキーワードとその動作が表示されます。

そのライブラリはhttps://github.com/derickr/timelibから含まれています。

于 2018-05-03T11:35:52.240 に答える