我使用下面的链接将Jalali转换为Gregorian:
我从用户那里收到数据作为字符串。 这是我使用的代码:
<script>
var jj = document.getElementById("fromDate1"),
bb = document.getElementById("showMe"),
splitOb, yy, mm, dd;
bb.onclick = function () {
splitOb = jj.value.split("/");
for (var i = 0; i < splitOb.length; i++) {
yy = splitOb[0];
mm = splitOb[1];
dd = splitOb[2];
}
var xx = yy.trim().toString(), nn = mm.trim().toString(), mmm = dd.trim().toString();
var xxx = parseInt(xx, 10);
var nnn = parseInt(nn, 10);
var mjj = parseInt(mmm, 10);
var hello = toGregorian(xxx, nnn, mjj);
alert(hello.gy + "/" + hello.gm + "/" + hello.gd);
/* var gh= "1395";
var ghh = parseInt(gh);
alert(ghh);*/
};
</script>
我在我的代码中使用了parseInt,不幸的是结果是Nan,我检查了我的变量,所有这些都是字符串。但是当我将它们从字符串转换为整数时,结果也是NaN。 当我像这段代码手动设置字符串到我的变量时:
var jjj = "1395";
var yyyt = "05";
var kik = "04";
var xxx = parseInt(jjj, 10);
var nnn = parseInt(yyyt, 10);
var mjj = parseInt(kik, 10);
var hello = toGregorian(xxx, nnn, mjj);
alert(hello.gy + "/" + hello.gm + "/" + hello.gd);
一切正常,为什么?
答案 0 :(得分:1)
NaN表示不是数字。也许你可以消除toString()
部分。
<script>
var jj = document.getElementById("fromDate1"),
bb = document.getElementById("showMe"),
splitOb, yy, mm, dd;
bb.onclick = function () {
splitOb = jj.value.split("/");
for (var i = 0; i < splitOb.length; i++) {
yy = splitOb[0];
mm = splitOb[1];
dd = splitOb[2];
}
var xxx = parseInt(yy, 10);
var nnn = parseInt(mm, 10);
var mjj = parseInt(dd, 10);
var hello = toGregorian(xxx, nnn, mjj);
alert(hello.gy + "/" + hello.gm + "/" + hello.gd);
/* var gh= "1395";
var ghh = parseInt(gh);
alert(ghh);*/
};
</script>
答案 1 :(得分:0)
This可以帮助回答您的问题。似乎它无法将第一个字符或某些字符转换为数值。导致问题的原因。
答案 2 :(得分:0)
我知道了!! 问题是我从用户那里获得的字符串是波斯语/阿拉伯语。我应该把它改成英文字符串数字。我使用此代码来解决问题:
$this->db = $this->load->database('db2',true);
如果您有其他自定义代码告诉我,我将不胜感激。 谢谢你的考虑。