如何在javascript

时间:2016-02-27 08:09:04

标签: javascript date persian

我想在JavaScript中将日期从Gregorian更改为shamsi。我正在使用ajax从模型中读取数据,因此datetime字段是Gregorian但我想向用户显示shamsi日期。我想在下面的代码中使用此shamsi日期而不是result.datetime,但我不知道如何这样做。

 function f2() {

    var ID = $("#sel").val();
   $.ajax({
        url: "/Account/GetPredict",
        data: { ID: ID },
        type: "post",
        success: function (value) {
            res = JSON.parse(value);
            $("#mm").empty();
            $("#mdiv").empty();
            $("#mm").append("<tr><td align='center'> بازی</td><td align='center'>تاریخ</td><td align='center'>پیش بینی شما</td><td align='center'>امتیاز کسب شده</td></tr>");
            $.each(res, function (idx, result) {

                $("#mm").append("<tr><td align='center'>" + result.game + "</td><td align='center'>" + ToJavaScriptDate(result.datetime) + "</td><td align='center'>" + result.predict + "</td><td align='center'>" + result.score + "</td></tr>");

            })
            if (res!=null) {
                $("#mdiv").append("<a style='color:red' href='../Account/PdfGenerator?ID=" + ID + "'><img src='../img/pdf.png' /></a>");
            }
        }
    })
}
function ToJavaScriptDate(value) {
    alert('ok')
    var pattern = /Date\(([^)]+)\)/;
    var results = pattern.exec(value);
    var dt = new Date(parseFloat(results[1]));
    alert(dt)
    var pc_fa = $.calendars.instance('persian', 'fa');
    var jdate33 = pc_fa.fromJSDate(new Date(dt.getFullYear(), dt.getMonth(), dt.getDate()));
    return jdate33;

}


</script>

1 个答案:

答案 0 :(得分:2)

我会使用Keith Wood library进行转换:

var pc_fa = $.calendars.instance('persian', 'fa');
alert("Current date: " + pc_fa.fromJSDate(new Date()));

有关文档,请参阅here。工作示例:jfiddle