生日计算器

时间:2017-04-11 08:18:16

标签: php

function initialize() {
  var mapOptions = {
  zoom: 8,
  center: myLatlng,
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  backgroundColor: '#FFF',
  disableDefaultUI: true,
  draggable: true,
  scaleControl: false,
  scrollwheel: false,

 styles: [
{
"featureType": "water",
"elementType": "geometry",
"stylers": [
  { "visibility": "off" }
]
},{
"featureType": "landscape",
"stylers": [
  { "visibility": "off" }
]
},{
"featureType": "road",
"stylers": [
  { "visibility": "off" }
]
},{
"featureType": "administrative",
"stylers": [
  { "visibility": "off" }
]
 },{
"featureType": "poi",
"stylers": [
  { "visibility": "off" }
]
},{
"featureType": "administrative",
"stylers": [
  { "visibility": "off" }
]
},{
"elementType": "labels",
"stylers": [
  { "visibility": "off" }
]
},{
}
]
};

 var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

我想知道为什么第一次运行它会出现“我们的生日计算器说你是2017年”。

在确定实际日期之后,php正常工作。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

因为第一次运行代码,$ birthday设置为1,然后通过calculate_age()函数传递。

该函数需要一个以正斜杠/.// p>分隔的日期的字符串表示

你没有传递它所期望的功能,所以它会返回乱码。

扩展解决方案:除非您有日期,否则不要进行计算:

$finalBirthday = false;

if(isset($_POST["birthday"]))
    $birthday = $_POST["birthday"];

    list($day, $month , $year) = explode("/", $birthday);
    $day_diff = date("d") - $day;
    $month_diff = date("m") - $month;
    $year_diff = date("Y") - $year;
    if($month_diff < 0){
        $year_diff--;
    }
    else if(($month_diff == 0) && ($day_diff < 0)){
         $year_diff--;
    }
    else if (($month_diff == 0) && ($day_diff == 0)){
         echo "<script type='text/javascript'>alert('Happy 
         Birthday!!!');</script>";
    }

    $finalBirthday=$year_diff;

}

...

<?php

    if ($finalBirthday) {
        echo "Our Birthday Calculator says you are " .$finalBirthday;
    }

 ?> 

答案 1 :(得分:0)

因为生日= 1天= 1,月= null,年= null。

这有点相当于你的生日是1/0/00让你2017年