2

まず、これらの各形式をどのような名前で参照すればよいかわからないので、実際の例を使用することをお許しください。

PHPでは、文字列の時刻をタイムスタンプに簡単に変換し、そのタイムスタンプを使用して、次のような任意の形式で時刻を作成できます。$timestamp = strtotime('9:00 am'); $militaryTime = date('H:i:s',$timestamp); echo $militaryTime;

しかし、JavaScriptでこれを行うにはどうすればよいですか?Date()JSオブジェクトのどのメソッドを使用して最初の時刻を入力し、次にどのメソッドを使用して時刻を変換するかなどがわかりません。

では、JavaScriptで「9:00pm」を「21:00:00」に変換する正しい方法は何ですか?

4

2 に答える 2

1

正規表現を使用して、文字列の一部を取得できます。

var in = "9:00 pm";
var m = in.match(/(\d{1,2}):(\d{2}) ([ap])m/i);
m[1] = parseInt(m[1],10);
if( m[1] == 12) m[1] -= 12;
if( m[3].toLowerCase() == "p") m[1] += 12;
m[1] = m[1]%24;
var out = m[1]+":"+m[2];
于 2012-09-14T21:52:49.077 に答える
1

http://jsfiddle.net/VxL4X/1/

var timeString = "7:33 PM";

var dateint = Date.parse("January 1, 2000 " + timeString);
var dateObj = new Date(dateint);
var milTime = dateObj.toLocaleTimeString();
var milTime2 = dateObj.toTimeString().split(" ")[0];

console.log(milTime);
console.log(milTime2);

toLocaleTimeStringこのアプリケーションが国際的であると期待する場合は、使用しないことをお勧めします。

別のオプションは、時間文字列を手動で作成することです:http: //jsfiddle.net/VxL4X/2/

var manualTime = 
    dateObj.getHours().pad(2) + ':' +
    dateObj.getMinutes().pad(2) + ':' +
    dateObj.getSeconds().pad(2);

(関数によるNumberオブジェクトの拡張に注意してくださいpad

于 2012-09-14T21:53:20.110 に答える