无法在Javascript中获得以31结尾的月份日期

时间:2017-09-04 13:53:22

标签: javascript date

我正在我的节目中放入一个复活节彩蛋,导致万圣节上出现一个插孔灯图像,但我无法将该代码识别为10月31日作为一个月/天。当我在我的代码上执行console.log时,它会反馈“2017年10月30日星期一”而不是第31天。

var today = new Date();
var halloween = new Date(today.getFullYear() + '10-31');
console.log(halloween.toDateString());
console.log(today.toDateString());

if (today.toDateString() === halloween.toDateString()) {
    printedMsg.innerHTML = rewardMsg + 'You deserve a spooky treat! ' + 
    '<img src="https://preview.c9users.io/mkrul/color_project/reward-imgs/boo.jpg">';
}

编辑:我把丢失的连字符放在'-10-31'前面,但控制台仍然显示“2017年10月30日星期一”

var halloween = new Date(today.getFullYear() + '-10-31');

2 个答案:

答案 0 :(得分:0)

你错过了一个连字符:

    public function method_name()
    {
          if(isset($_POST))
            {

                $insert_array = array(

                                   'value1'       => $_POST['value1'],
                                   'value2'       => $_POST['value2'],
                                   'value3'       => $_POST['value3'],
                                   'value4'       => $_POST['value4'],

                                );
                $res = $this->model_name_db->insertValues($insert_array);
                if( $res > 0 )
                {
                   echo"1";exit;
                }  
                else
                {
                   echo"0";exit;
                }  
            }
            else
            {
                // your action
            }

    }

将返回

var today = new Date();
var halloween = new Date(today.getFullYear() + '-10-31');
console.log(halloween.toDateString());

答案 1 :(得分:0)

在ECMAScript中,解析字符串是有问题的,即使您获得正确的格式,您也会传递一个将被视为UTC的日期格式,因此代表您希望格林威治以西用户所需的日期前一天。

另见Why does Date.parse give incorrect results?

所以不要依赖内置的解析器,直接传递组件:

&#13;
&#13;
var halloween = new Date(new Date().getFullYear(), 9, 31);

console.log('Halloween is on ' + halloween.toString());
&#13;
&#13;
&#13;