Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php UNION ALL影响datetime变量从数据库回显_Php_Date - Fatal编程技术网

Php UNION ALL影响datetime变量从数据库回显

Php UNION ALL影响datetime变量从数据库回显,php,date,Php,Date,这是我的完整代码: <?php $stmt = $pdo->prepare(" SELECT dateA AS dateA FROM tableA UNION ALL SELECT dateB AS dateB FROM tableB; "); $stmt->execute(); $rows = $stmt->fetchAll(); foreach($rows as $row): $dateA = $row['dateA']; ?

这是我的完整代码:

<?php
$stmt = $pdo->prepare("
    SELECT dateA AS dateA FROM tableA
    UNION ALL
    SELECT dateB AS dateB FROM tableB;
");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach($rows as $row): 
    $dateA = $row['dateA'];
    ?>
    <div>
    <?php if ($dateA):
        $dateA = date('M d, Y', strtotime($dateA));
        echo $dateA; ?>
    </div>
    <div>
    <?php
        $datetimeA = date('g:ia', strtotime($dateA));
        echo $datetimeA;
    endif; ?>
    </div>
<?php endforeach; ?>
表B


你可以试试这个。您正在将转换后的datepart保存在同一个变量中,之后从该变量获取时间部分时,时间部分就不存在了,因此给出默认值12:00AM。您应该使用不同的变量来存储您的值

<?php
$stmt = $pdo->prepare("
    SELECT dateA AS dateA FROM tableA
    UNION ALL
    SELECT dateB AS dateB FROM tableB;
");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach($rows as $row): 
    $dateA = $row['dateA'];
    ?>
    <div>
    <?php if ($dateA):
        $dateAA = date('M d, Y', strtotime($dateA));    // instead of storing your value in same $dateA use another variable
        echo $dateAA; ?>
    </div>
    <div>
    <?php
        $datetimeA = date('g:ia', strtotime($dateA));
        echo $datetimeA;
    endif; ?>
    </div>
<?php endforeach; ?>


从数据库表中进行查询选择通常无法更改该表中包含的数据,因此您可能没有您认为的数据,或者PHP正在对其进行某种程度的更改。@TimBiegeleisen是的,您可以使用PHP的date方法更改表中的数据。更新了我的代码以证明你可以做到这一点。看看dateA和dateB列是如何仅仅是数字的?然后他们使用日期法变成了字母数字。所以是的,这是可能的。PDO代码有点不对劲。在所有这些都出现在mysqlioop代码中之前,但当我切换到PDO时,这种情况发生了。这不是我要评论的。我说过在MySQL中运行select不会改变数据。@TimBiegeleisen我需要一个关于如何解决这个问题和修复这个问题的建议。@misner:是的,我没有意识到我不能在相同的变量中存储日期。谢谢你的解释,现在就明白了!
May 23, 2019
1:21am       <-- Correct time as displayed on database column
Aug 23, 2019
6:54pm       <-- Correct time as displayed on database column
Aid | dateA
1   | 2019-05-23 01:21:29 
Bid | dateB
12  | 2019-08-23 18:54:22 
<?php
$stmt = $pdo->prepare("
    SELECT dateA AS dateA FROM tableA
    UNION ALL
    SELECT dateB AS dateB FROM tableB;
");
$stmt->execute();
$rows = $stmt->fetchAll();
foreach($rows as $row): 
    $dateA = $row['dateA'];
    ?>
    <div>
    <?php if ($dateA):
        $dateAA = date('M d, Y', strtotime($dateA));    // instead of storing your value in same $dateA use another variable
        echo $dateAA; ?>
    </div>
    <div>
    <?php
        $datetimeA = date('g:ia', strtotime($dateA));
        echo $datetimeA;
    endif; ?>
    </div>
<?php endforeach; ?>