ホームページ  >  記事  >  バックエンド開発  >  php5.2 が SQL Server2008 を呼び出すと、出力される DateTime オブジェクトは通常の時刻またはタイムスタンプではありません。

php5.2 が SQL Server2008 を呼び出すと、出力される DateTime オブジェクトは通常の時刻またはタイムスタンプではありません。

WBOY
WBOYオリジナル
2016-06-20 12:37:231061ブラウズ

PHP と sqlsrv の非主流の組み合わせを使用するのは初めてです。
[0] => 配列 (
[ユーザー ID] => 10
[アカウント] => P6000001
[パスワード] => 123456
[ログイン番号] => 4
[更新時間] => ; DateTime オブジェクト
(
)

[RegistTime] => DateTime オブジェクト
(
)

[EndTime] => (
)

[ステータス] => 0
d] => 135
)
オブジェクトをタイムスタンプに変換する方法





ディスカッションへの返信 (解決策)

まず、日付関数を使用して変換してみます たとえば、読み取ったデータは $r 配列にあり、 echo date('Y-m-d H:i:s', $r[0]['UpdateTime'] ; > === ソース コード
$sqlsrv = new Sqlsrv();

$sql = "SELECT TOP 1 [UpdateTime]

,[RegistTime]

,[EndTime]
FROM [User]
$stmt=$sqlsrv->select($sql);
p($stmt)
echo date('Y-m-d H:i:s', $stmt[0][' UpdateTime']); //この行は出力されませんでした
echo '
';
echo Serialize($stmt);
===以下は出力結果です
Array

(

[0] => 配列
(
[UpdateTime] => DateTime オブジェクト
(
)

[RegistTime] => DateTime オブジェクト
(
)

[EndTime] => DateTime オブジェクト
( )

)

)

a:1:{i :0;a:3:{s:10:"更新時刻";O:8:"日付時刻":0:{}s:10:"登録時刻";O:8:"日付時刻" :0:{}s: 7:"終了時刻";O:8:"日時":0:{}}}

シリアル化後にコンテンツは表示されません。これはフィールドが空であることを意味します
テスト用にデータを含むフィールドを選択する必要があります

sqlserver にデータがありますが、空ではありません ( Baidu の投稿では、他の人が読み取った時刻は友好的ではありませんでした。私が遭遇したのは datetime オブジェクトであり、get_object_vars() で取得したのは空の配列でした。このオブジェクトを調整する方法がわかりません。
UserId。アカウント パスワード ログイン番号 UpdateTime RegistTime EndTime Status CreateTime MachineId
10 P6000001 123456 4 2013-09-27 13:16:44.503 2013-03-21 10:18:37.000 2019-04-19 17:27:53.047 0 3-04 -19 17:27:53. 050 135

コードを投稿

コードは 2 階の {sql サーバーにあります。これら 3 つのフィールドのうち、日時は mysql と同じですか? の日時は異なります。}

接続クラス
class Sqlsrv{
public $connect($host=) を作成しました。 "(ローカル)",$uid="sa", $pwd="123456",$dbname="tupoemanager"){
$connectionInfo = array("UID"=>$uid,"PWD"=>) ;$pwd,"データベース"=>$dbname) ;
$this->connect = sqlsrv_connect( $host,$connectionInfo);
sqlsrv_query("set names 'utf8'"); > //select
function select($sql,$affected=2){
$result = sqlsrv_query($this->connect,$sql);
//var_dump($result ); 🎜> $resultArr = array();
if($affected==2){

while($row =sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){
$resultArr[ ] =$行;
}

}else{
$resultArr = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)
}
return $resultArr; //query
function query($sql){
return sqlsrv_query($this->connect,$sql);
}
//
関数が影響を受けます($stmt ; $sql = "SELECT TOP 1
CONVERT(varchar(19),UpdateTime,120)as UpdateTime
FROM [ユーザー] ";
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。