为了账号安全,请及时绑定邮箱和手机立即绑定

echo出来的varchar为什么会直接把0开头的数当成8进制转成新的10进制数呢?

echo出来的varchar为什么会直接把0开头的数当成8进制转成新的10进制数呢?

__Flawless 2016-04-24 23:25:16
<?php  error_reporting(E_ALL^E_DEPRECATED); $con = mysql_connect("localhost","root",""); if (!$con) { die('Accident: 服务器连接失败,请联系管理员'); } else { mysql_query("set character set 'utf8'"); mysql_query("set names 'utf8'"); mysql_select_db("itrip",$con); $result=mysql_query("SELECT * FROM spot"); while($row=mysql_fetch_array($result)) { echo "var point = new BMap.Point(".$row['spotLon'].",".$row['spotLat'].");"; echo "var bizstart=".$row['bizTimeFrom'].";alert(bizstart);"; echo "var bizend=".$row['bizTimeTo'].";alert(".$row['bizTimeTo'].");"; echo "if(bizstart!=bizend){  var now=new Date(); var hour=now.getHours(); if((0<=hour&&hour<bizstart)||hour>bizend){ spotState=0; } else spotState=1; } else spotState=1;"; echo "addMarker(point,spotState);"; } } mysql_close($con); ?>以上只是截取JS代码中的php部分。我的两个点都有属性bizTimeFrom和bizTimeTo0600 18000600 2000执行之后的结果是 384 1800和384 2000而当我不使用任何别的语言,只是新建了一个php,echo $row['bizTimeFrom']."  ".$row['bizTimeTo']; echo "<br>";这样的结果又是 0600 1800和0600 2000了所以 求助怎么让显示结果是0600
查看完整描述

1 回答

?
qq_青枣工作室_0

TA贡献446条经验 获得超754个赞

JS里,八进制就是用0开头表示啊。你可以在PHP里把左边的0删掉:

 echo "var bizstart=".ltrim($row['bizTimeFrom'], '0').";alert(bizstart);";


或者,在JS里用字符串来表示'0600',再转为数字:

echo "var bizstart=parseInt('".$row['bizTimeFrom']."');alert(bizstart);";

查看完整回答
1 反对 回复 2016-04-25
  • 1 回答
  • 0 关注
  • 1895 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信