1

私は多くの方法を試しましたが、いつも解決策がありません。必要なのは、時刻を 12 時間形式から 24 時間形式に変換できる JavaScript コードdiv.postedOnです。

div.postedTime の例:

<div class="postedOn"><img src="http://assets7.thatsite.com/images/forums/post/reply.gif?v3" alt="">&nbsp;&nbsp;Posted on June 3, 2012 1:46 AM</div>

そのため、「1:46 PM」を「01:46」に変換する必要があり<div>ます。

4

4 に答える 4

4

フォーマットが常に同じであれば、これはうまくいきます:

out = in.replace(/(\d+):(\d+) ([AP])M/,function(m) {
    m[1] = m[1]%12;
    if( m[3] == "P") m[1] += 12;
    if( m[1] < 10) m[1] = "0"+m[1];
    return m[1]+":"+m[2];
});
于 2012-06-03T23:24:19.380 に答える
1

Kolink と同様に、別の正規表現ソリューションを追加します...

var str = "Posted on June 3, 2012 2:00 PM";
var regex = /([01]?\d)(:\d{2}) (AM|PM)/g;
var match = regex.exec(str);
str.replace(regex, (+match[1] + (match[3]=='AM'? 0 : 12)) + match[2] + match[3]);
于 2012-06-03T23:34:16.837 に答える
0

私はしばらくJavaScriptをやっていなかったので、100%確信はありませんが、あなたはこのようなことをするでしょう..(これは疑似です)

if( timeString.contains("pm") ) {
hour += 12%24;
}

それが機能するかどうかは 100% 確信が持てませんが、それでも基本的な考え方です。私が助けてくれることを願っています。

于 2012-06-03T23:23:12.143 に答える
0
var str = "12:00 AM";
var regex = /([01]?\d)(:\d{2}) (a.m.|p.m.|AM|PM)/g;
var match = regex.exec(str);
var test;
if (match[1] == 12 && (match[3] == 'p.m.' || match[3] == 'PM')) {
    test = '12 h';
} else if (match[1] == 12 && (match[3] == 'a.m.' || match[3] == 'AM')) {
    test = '0 h';
} else {
    test = str.replace(regex, (+match[1] + (match[3]=='a.m.'? 0 : 12)) + ' h');
}
console.log(test);

これらの厄介な「午前 12 時」と「午後 12 時」の状況を把握することに関して、これは機能しますか?

于 2013-03-10T22:49:23.447 に答える