0

さまざまな形式の日付を含むテキスト ファイルをさまざまなソースからインポートする必要があります。これまでに収集したテスト ファイルで遭遇した混乱したデータの断片の数を考えると、ファイルをインポートする前に、ユーザーに日付形式の入力を強制することにしましMMDDYYYYDD.MM.YYYY

これらのユーザーが、入力Y-m-dn/j/Y解析が容易な形式を十分に理解しているとは期待できません。また、「ダッシュが使用されている場合、月が日の前に来る」などの「標準」に頼ることもできません。したがって、自動解析は非常に問題外です。

通常の PHP 日付フォーマットのもう 1 つの問題は、日付フォーマットが 1 桁か 2 桁かを予測できないことcreateFromFormatです。 ...

したがって、私の最初の考えは、純粋な数値の日付を他の日付から分離することから始め、ユーザーに形式コードとともに完全な 8 桁の日付を入力させることです。そうしないと、面倒になります。しかし、それは私がこれまでに得た限りです...

日付と書式文字列を並べて解析することを考えましたが、注意しないと、1 桁の数字で問題が発生する可能性があります。

私の場合に役立つものは何も見つかりませんでしたが、間違った角度からこれを取っている可能性があります.PHPの日付形式と互換性のあるJavascriptまたはjQueryの日付形式選択ツールがあるかもしれません...

これに対する最善のアプローチに関する提案はありますか?

4

3 に答える 3

0

最も簡単な解決策を見つけたと思います。複雑に考えすぎました。

日付形式の入力を M の 2 桁、D の 2 桁、Y の 4 桁に制限し、セパレータを使用するかどうかにかかわらず、これを使用できます。

$str = '02-01-2013';

$format = "DD-MM-YYYY";
$matrix = array(
    "YYYY"=>"Y",
    "MM"=>"m",
    "DD"=>"d"
);
foreach ($matrix as $key=>$value)
{
    $format = str_replace($key, $value, $format);
}

$date = Datetime::createFromFormat($format, $str);
echo $date->format('Y-m-d');

これは私のために働くはずです。ご提案いただきありがとうございます。誰かがより良いアイデアを持っていれば、私はまだ開いています:-)

于 2013-07-17T19:28:57.663 に答える
0

jquery uiには優れた日付ピッカーがあります。日付の形式が常に同じであることを確認するために、いくつかのアプリで使用しました

于 2013-07-17T19:09:24.390 に答える