2016-03-27 5 views
0

02:00などの文字列をdatabseに整数として保存できるタイムスタンプに変換するにはどうすればよいですか?ユーザーがフォームに入力する内容に応じて、mm:ssまたはhh:mmのいずれかにすることができます。しかし、常にmm:ssまたはhh:mmmm:ssとhh:mmをPHPのタイムスタンプに変換

strtotimeは信頼性の低い結果をもたらしますので、正しい方法ではないと思いました。私が気づいていない別の方法がありますか? 私はミリメートルのための入力を持つフォームがあります:SSとHHの入力:mmの値をより良い方法で質問し

EDIT

。これらの値をUNIXのタイムスタンプに変換する必要があります。明らかにstrtotimeはこれのために行く方法ではありません。

+2

だから、 '02のタイムスタンプです:00 - 120は? –

+1

'hh:mm'と' mm:ss'を区別する方法がないので、両方のケースを別々に扱わなければなりません。おそらく、正規表現を使って両方のセグメントを抽出してから秒に変換するのが最善の策です。 – Chris

+1

'strtotimeは信頼できない結果を出します' strtotimeはゲームを推測しないので信頼できません。 –

答えて

0

タイムスタンプに数分または数時間しか変換できません。日付が必要です。

$time = mktime($hours, $minutes, $seconds, $month, $day, $year); 

ドキュメント:PHPでは、mktime関数機能を使用することができる。例えばhttp://php.net/manual/en/function.mktime.php

をお持ちのhh:mmの入力

$input = '02:15'; 

$arr = array_map('intval', explode(':', $input)); 

// Create timestamp with selected time for today date 
$time = mktime($arr[0], $arr[1], 1, date('m'), date('d'), date('Y')); 
+0

そう、02:00のように爆発し、mktime()をそれぞれの値で使用しますか? –

+0

私はデータベースの 'time'フィールドに値を保存しなければならないと思います...それは適切な方法だと思います。 –

関連する問題