myname
myname

Reputation: 1309

how to change date from gregorian to shamsi in javascript

I want to change date from Gregorian to shamsi in JavaScript. I am reading data from model with ajax so datetime field is Gregorian but I want to display shamsi date to user .and I want to use this shamsi date instead of result.datetime in the code below, but I don't know how to do this.

 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>

Upvotes: 1

Views: 2305

Answers (1)

texnic
texnic

Reputation: 4098

I would use the Keith Wood library for the conversion:

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

See here for documentation. Working example: jfiddle.

Upvotes: 2

Related Questions