3

これは本当に簡単かもしれませんが、私には理解できません。UI に表示するために、24 時間を 12 時間に変換しようとしています。

var hrs = '<%=Model.Scheduled.Value.Hour%>';
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);

しかし、上記は hrs が文字列であるため機能しません。これを機能させる方法に関する提案はありますか?

4

6 に答える 6

2

あなたが使用することができますparseInt():

var hrs = '<%=Model.Scheduled.Value.Hour%>';
hrs = parseInt(hrs, 10) // converts the value to an integer
var hrs12 = hrs > 12 ? hrs - 12 : hrs;
$("#ScheduledHour").val(hrs12);
于 2012-07-16T16:20:23.390 に答える
2
var hrs = '<%=Model.Scheduled.Value.Hour%>'
    thrs = parseInt(hrs, 10);  // As hrs is string, so you need to convert it to
                               // integer using parseInt(str, radix), don't forget to use 
                               // radix parameter

var hrs12 = thrs > 12 ? thrs - 12 : thrs;
$("#ScheduledHour").val(hrs12);
于 2012-07-16T16:20:54.313 に答える
1

数値に変換hrsするだけです:

hrs = '<%=Model.Scheduled.Value.Hour%>' * 1;

また、あなたの質問は誤解を招くものです。実際に質問しているのは、「JavaScript で文字列を数値に変換するにはどうすればよいですか?」ということだけです。その場合、Google はおそらくあなたを助けることができたでしょう。

于 2012-07-16T16:20:06.330 に答える
1

hrs 変数を数値に変換する必要があります。これを行うにはいくつかの方法がありますが、ここでは parseInt がおそらく最善の策です...

parseInt: http://www.w3schools.com/jsref/jsref_parseint.asp

于 2012-07-16T16:20:35.860 に答える
1

int に変換できます。

var hrsInt = parseInt(hrs);
于 2012-07-16T16:20:48.610 に答える
0
function formatDate(date) {
    var d = new Date(date);
    var hh = d.getHours();
    var m = d.getMinutes();
    var s = d.getSeconds();
    var dd = "AM";
    var h = hh;
    if (h >= 12) {
        h = hh-12;
        dd = "PM";
    }
    if (h == 0) {
        h = 12;
    }
    m = m<10?"0"+m:m;

    s = s<10?"0"+s:s;

    /* if you want 2 digit hours:
    h = h<10?"0"+h:h; */

    var pattern = new RegExp("0?"+hh+":"+m+":"+s);

    var replacement = h+":"+m;
    /* if you want to add seconds
    replacement += ":"+s;  */
    replacement += " "+dd;    

    return date.replace(pattern,replacement);
}

alert(formatDate("February 04, 2011 12:00:00"));
于 2012-07-16T16:21:01.713 に答える