字符串来自Internet Explorer / Edge时未按预期正确

时间:2017-04-18 18:23:34

标签: php json get

我试图使用GET请求将一些日期值从angular传递到Laravel。我不相信这些框架与此问题具体相关。

我将以下值从text输入字段传递到我的API 1/4/2017。这正是此值。我需要使用文本字段,因为我使用的Angular JS插件来选择日期。

在我的PHP API中,我有以下内容。

$data = json_decode($requestData->data, false);

$date_object = new DateTime;

if($data->primary_reports_from_date == '1/4/2017') {
    print_r('identical');
} else {
    print_r('not identical');
}
die;

在Firefox和Chrome中,我得到identical作为我的回复,在IE中我得到not identical ..

修改: ,.在u_mulder的评论之后,我做了一个var_dump() 我得到了#34;字符串(23)" 1/4 2017" $data->primary_reports_from_date 和"字符串(8)" 1/4 / 2017" 1/4/2017

我试过了

print_r($data->primary_reports_from_date.' | 1/4/2017');die; 

我正在" 2017年1月4日| 1/4/2017年"在我的回复中

我也试过

trim($data->primary_reports_from_date)stripslashes($data->primary_reports_from_date)但无论我从IE做什么,我都无法与之匹敌。

我是否遗漏了一些明显的GET请求以及数据可能会受到什么影响?

我遇到的问题是我正在尝试使用DateTime::createFromFormat()但是当数据来自IE时它不起作用,它只返回空白。

1 个答案:

答案 0 :(得分:0)

这对我有用。我不确定那些隐藏的角色究竟是什么但是有了这个,在IE中我也得到identical作为我的结果

if(preg_replace('/[^\PC\s]/u', '', $data->primary_reports_from_date) == '1/4/2017') {
    print_r('identical');
} else {
    print_r('not identical');
}
die;