ユーザーが日付を入力できる日付入力フィールドがあり、この入力を検証する必要があります(すでにサーバー側の検証があります)が、トリックは形式がロケールに依存することです。strptimeフォーマット文字列をユーザーの好みに変換するシステムがすでにあります。Javascript側での検証にこれと同じフォーマットを使用したいと思います。
strptime()
Javascriptの実装へのアイデアやリンクはありますか?
ユーザーが日付を入力できる日付入力フィールドがあり、この入力を検証する必要があります(すでにサーバー側の検証があります)が、トリックは形式がロケールに依存することです。strptimeフォーマット文字列をユーザーの好みに変換するシステムがすでにあります。Javascript側での検証にこれと同じフォーマットを使用したいと思います。
strptime()
Javascriptの実装へのアイデアやリンクはありますか?
数日間のグーグル検索の後、この実装を見つけまし た。完全ではありませんが、現在私が抱えているすべてのケースを処理しているようです。
strptime()の php.js 実装を追加しました。少しテストしましたが、さらに単体テストが必要です。とにかく、気軽に試してみてください。PHP が行うことすべてをカバーする必要があります (文書化されていない %E... (代替ロケール形式) 指定子をまだサポートしていないことを除く)。
setlocale() と array_map() の実装にも依存することに注意してください...
以下は、strptime のほとんどの機能を複製する関数の例です。通常、JavaScript の日付オブジェクトは、投げた日付文字列を解析するので、あまり心配する必要はありません。したがって、文字列に基づいて日付オブジェクトを取得したら、各要素を JS オブジェクトにプッシュして返すだけです。このサイトには、JavaScript 日付オブジェクトのプロパティに関する適切なリファレンスがあります: http://www.javascriptkit.com/jsref/date.shtml
function strptime(dateString){
var myDate = new Date(dateString);
return {tm_sec:myDate.getSeconds(),
tm_min: myDate.getMinutes(),
tm_hour: myDate.getHours(),
tm_mday: myDate.getDate(),
tm_mon: myDate.getMonth(),
tm_year: myDate.getFullYear().toString().substring(2),
tm_wday: myDate.getDay()};
}
var dateString = "October 12, 1988 13:14:00";
dateObj = strptime(dateString);
document.write("d:" + dateObj.tm_min + "/" + dateObj.tm_hour + "/" + dateObj.tm_mday + "/" + dateObj.tm_mon + "/" + dateObj.tm_year);