转换M d, Y格式的日期导致其他行显示日期
Converting Date in M d, Y format leads to display date in other rows
我们正在获取列 "due_date" 的值并在站点中显示。
它在下面代码的帮助下工作正常。
$i = 0;
foreach($order as $orderData)
{
$k = 0;
while ($k < count($orderitemsarray)) {
if ($orderitemsarray[$k] != '0') {
if($accountType == "admin") {
$due_date='';
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
}
$responce[] = array( $due_date );
}
return json_encode($responce);
脚本
var colsOption = [
{id: 'due_date' , header: " Due Date" , width :"140"},
];
我想以这种格式显示日期:
所以我尝试了下面的代码
$responce[] = array(
$sDate1
);
现在它也显示其他行的日期,但对于那些其他行,数据库中没有值[截止日期]。
阅读 pastebin 后更新了代码(见下面的评论)。
$sDate1 = '';
while($datas = $stmt1->fetch()) {
if ($datas['due_date'] != null) {
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
}
}
$responce[] = array( $sDate1 );
您需要申请检查空日期
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
if(isset($due_date)){ // Apply the check for empty if empty dont pass it to Datetime function.
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
$responce[] = $sDate1;
}
}`
而不是这部分...
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
}
$responce[] = array( $due_date );
}
return json_encode($responce);
尝试这样的事情...
$response = array();
...
$i = 0;
foreach($order as $orderData)
{
$k = 0;
while ($k < count($orderitemsarray)) {
if ($orderitemsarray[$k] != '0') {
if($accountType == "admin") {
while($datas = $stmt1->fetch()) {
if(!empty($datas['due_date'])){
// place the Datetime part here... in case $datas['due_date'] is empty*
$oDate1 = new DateTime($datas['due_date']);
$due_date = $oDate1->format("M d, Y");
} else {
$due_date = "";
}
}
...
...
return json_encode($responce);
...
(*) 检查 Datetime here 的输出,如果 $datas['due_date']
是 "" 或 null
在您的代码中,您正在使用循环在 $response[] 中添加值。发生的情况是 $sDate1 的值未初始化为 null。所以当它第一次被设置时它不会改变直到下一个 due_date 值出现所以它不断重复最后一个 $sDate1 值来解决这个问题,转到这个文件 http://pastebin.com/PnPnX9Wiand 下面的第 152 行初始化 $日期 1。更改此代码。
$paid_status='';
$delivery_status='';
$due_date='';
添加 $sDate1='';。它看起来像这样。
$paid_status='';
$delivery_status='';
$due_date='';
$sDate1='';
现在更改此代码。
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
使用此代码。
$oDate1 = new DateTime($datas['due_date']);
$due_date = $oDate1->format("M d, Y");
$sDate1 = $oDate1->format("M d, Y");
您需要检查变量是否为空,然后将日期格式化为更新代码
$i = 0;
foreach($order as $orderData)
{
$k = 0;
while ($k < count($orderitemsarray)) {
if ($orderitemsarray[$k] != '0') {
if($accountType == "admin") {
$due_date='';
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
if (!empty($oDate1))
$sDate1 = $oDate1->format("M d, Y");
}
$responce[] = array( $due_date );
}
return json_encode($responce);
我们正在获取列 "due_date" 的值并在站点中显示。
它在下面代码的帮助下工作正常。
$i = 0;
foreach($order as $orderData)
{
$k = 0;
while ($k < count($orderitemsarray)) {
if ($orderitemsarray[$k] != '0') {
if($accountType == "admin") {
$due_date='';
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
}
$responce[] = array( $due_date );
}
return json_encode($responce);
脚本
var colsOption = [
{id: 'due_date' , header: " Due Date" , width :"140"},
];
我想以这种格式显示日期:
所以我尝试了下面的代码
$responce[] = array(
$sDate1
);
现在它也显示其他行的日期,但对于那些其他行,数据库中没有值[截止日期]。
阅读 pastebin 后更新了代码(见下面的评论)。
$sDate1 = '';
while($datas = $stmt1->fetch()) {
if ($datas['due_date'] != null) {
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
}
}
$responce[] = array( $sDate1 );
您需要申请检查空日期
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
if(isset($due_date)){ // Apply the check for empty if empty dont pass it to Datetime function.
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
$responce[] = $sDate1;
}
}`
而不是这部分...
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
}
$responce[] = array( $due_date );
}
return json_encode($responce);
尝试这样的事情...
$response = array();
...
$i = 0;
foreach($order as $orderData)
{
$k = 0;
while ($k < count($orderitemsarray)) {
if ($orderitemsarray[$k] != '0') {
if($accountType == "admin") {
while($datas = $stmt1->fetch()) {
if(!empty($datas['due_date'])){
// place the Datetime part here... in case $datas['due_date'] is empty*
$oDate1 = new DateTime($datas['due_date']);
$due_date = $oDate1->format("M d, Y");
} else {
$due_date = "";
}
}
...
...
return json_encode($responce);
...
(*) 检查 Datetime here 的输出,如果 $datas['due_date']
是 "" 或 null
在您的代码中,您正在使用循环在 $response[] 中添加值。发生的情况是 $sDate1 的值未初始化为 null。所以当它第一次被设置时它不会改变直到下一个 due_date 值出现所以它不断重复最后一个 $sDate1 值来解决这个问题,转到这个文件 http://pastebin.com/PnPnX9Wiand 下面的第 152 行初始化 $日期 1。更改此代码。
$paid_status='';
$delivery_status='';
$due_date='';
添加 $sDate1='';。它看起来像这样。
$paid_status='';
$delivery_status='';
$due_date='';
$sDate1='';
现在更改此代码。
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
$sDate1 = $oDate1->format("M d, Y");
使用此代码。
$oDate1 = new DateTime($datas['due_date']);
$due_date = $oDate1->format("M d, Y");
$sDate1 = $oDate1->format("M d, Y");
您需要检查变量是否为空,然后将日期格式化为更新代码
$i = 0;
foreach($order as $orderData)
{
$k = 0;
while ($k < count($orderitemsarray)) {
if ($orderitemsarray[$k] != '0') {
if($accountType == "admin") {
$due_date='';
while($datas = $stmt1->fetch()) {
$due_date=$datas['due_date'];
$oDate1 = new DateTime($datas['due_date']);
if (!empty($oDate1))
$sDate1 = $oDate1->format("M d, Y");
}
$responce[] = array( $due_date );
}
return json_encode($responce);