使用jquery将日期persian Datepicker转换为Gregorian

时间:2017-01-04 07:00:48

标签: jquery

我想将文本框中用1表示的波斯语Datepicker转换为格里高利日期,并将其复制到第二个文本框。

我试过了:

$('#textbox1').persianDatepicker({
     format: 'YYYY/MM/DD'
    observer: true,
    var e=$('#textbox1').val();
    var gregDate = gregoriantojd(e);
        $('#textbox2').val(gregDate);

});

但这不起作用。

如何使此代码有效?

1 个答案:

答案 0 :(得分:3)

如果我理解你的问题,你想有办法从波斯日历转换为格里高利日期。我试着建立一个例子,请看看。

在底部,我添加了official documentation中的javascript。

$(document).ready(function() {
  $('#datepicker').persianDatepicker({
    onShow: function() {
      $('#converted').text('');
    },
    onSelect: function () {
      var pd = new persianDate();
      var value = pd.parse($("#datepicker").val());
      var jdf = new jDateFunctions();
      $('#converted').text(jdf.getGDate(value));
    }
  });
});
<link rel="stylesheet" href="https://cdn.rawgit.com/behzadi/persianDatepicker/master/css/persianDatepicker-default.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.rawgit.com/behzadi/persianDatepicker/master/js/persianDatepicker.min.js"></script>

<h2> - Convert Jalali(shamsi) date to Gregorian(miladi) date</h2>
<input type="text" placeholder="Click to select date" id="datepicker" />
<div id="converted"></div>

来自official website of jQuery Persian Datepicker(假设您确实使用该插件):

$("#year, #month, #day").on("change", function () {
    $("#month").val() > 6 ? $("#day-31").hide() : $("#day-31").show();;
    showConverted();
});
$("#year").keyup(showConverted);
function showConverted() {
    try{
        var pd = new persianDate();
        pd.year = parseInt($("#year").val());
        pd.month = parseInt($("#month").val());
        pd.date = parseInt($("#day").val());

        var jdf = new jDateFunctions();
        $("#converted").html("Gregorian :  " + jdf.getGDate(pd)._toString("YYYY/MM/DD") + "     [" + jdf.getGDate(pd) + "]Julian:  " + jdf.getJulianDayFromPersian(pd));
    } catch (e) {
        $("#converted").html("Enter the year correctly!");
    }
}