json enconde只是日期值

时间:2015-06-01 22:19:40

标签: javascript php sql json csv

这只是一个知道这是否可能的问题,我正在通过一个名为thru JS的php执行的sql查询制作一个CSV文件,这个查询有一些日期,所以当我json编码它们返回使用javascript来制作实际的CSV文件我将这些日期作为[object Object]。我的问题是,有没有办法用值而不是整个日期对象json_encode这个,或者是我的日期从查询返回的方式的问题?

这是我的php文件。

<?php
include "ChromePhp.php";
//ChromePhp::log('HOLA');
$inicio =($_POST['inicio']);
$fin =($_POST['fin']);
$agente = isset($_POST['AgR']) ? strval($_POST['AgR']) : '' ;
if($agente == 'Selecciona...'){
    $agente = '';
}
$date = date("Y-m-d H:i:s");
//ChromePhp::log($inicio);
//ChromePhp::log($fin);
//ChromePhp::log($agente);

include "includes/db_config.php";
$conn = sqlsrv_connect(SV_NAME, $connectionInfo) OR die("Unable to connect     to the database");

$sql = "SELECT
ISNULL(DateDiff(dd, date, resuelto),DateDiff(dd, date, GETDATE()))      As Ndays, 
ISNULL(DateDiff(hh, date, resuelto),DateDiff(hh, date, GETDATE())) % 24 As Nhours,
ISNULL(DateDiff(mi, date, resuelto),DateDiff(mi, date, GETDATE())) % 60 As Nmins,
CAST(ISNULL(DateDiff(hh, date, resuelto),DateDiff(hh, date, GETDATE())) %24     AS float)/24 + CAST(ISNULL(DateDiff(mi, date, resuelto),DateDiff(mi, date, GETDATE())) %60 AS float)/60 + CAST(ISNULL(DateDiff(dd, date, resuelto),DateDiff(dd, date, GETDATE())) AS float) AS total,
servicio.id,
servicio.date,
swo,
usuarios.nombre,
cliente,
resuelto,
flotas.ownerName,
input.form,
 CAST(REPLACE(CAST(comentariosCliente AS NVARCHAR(MAX)),CHAR(10),' ') AS NTEXT) as comentariosCliente,
CAST(REPLACE(CAST(comentariosPropios AS NVARCHAR(MAX)),CHAR(10),'') AS NTEXT) as comentariosAgente,
Areas.Area
FROM servicio left join flotas ON servicio.flota=flotas.ownerId 
left join usuarios ON servicio.[user]=[dbo].usuarios.id 
left join input on servicio.inputForm=input.id 
left join Areas ON servicio.status =Areas.id
WHERE Area like '%$agente%'
AND resuelto is not null
AND date between '$inicio' and '$fin'
order by servicio.id";
//ChromePhp::log($sql); 
$params = array();
$options =  array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$result = sqlsrv_query($conn, $sql, $params, $options);
if( $result === false ) {
     echo "Error in executing query.</br>";
 die( print_r( sqlsrv_errors(), true));
}
$json = array();

do {
     while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
     $json[] = $row;
     }
} while ( sqlsrv_next_result($result) );

/* Run the tabular results through json_encode() */
/* And ensure numbers don't get cast to trings */
echo json_encode($json);
//ChromePHP::log($json);
/* Free statement and connection resources. */
sqlsrv_free_stmt( $result);
sqlsrv_close( $conn);
?>

1 个答案:

答案 0 :(得分:1)

所以,我发现一个简单的转换就足够了

Convert(VARCHAR, servicio.date,120) as date,
Convert(VARCHAR, resuelto,120) as resuelto,