簡體   English   中英

使用日期和StrToTime

[英]Using Date & StrToTime

我一直在使用以下代碼,沒有任何問題,直到它最終登陸Windows服務器並決定產生錯誤為止:

$date = date('F d, Y', $data->e_date)
date($time_format, strtotime($date.' '.$data->e_time))

*(e_date這樣存儲:“ 1293559200”,e_time這樣存儲:“ 18:00”)*

錯誤是這樣的:

date() [function.date]: Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in ...

據我了解,這是因為我在date函數中使用了strtotime 所以我想知道什么是解決或重寫此問題的理想方法?

我是否應該將整個strtotime放入新變量(即$ newdate)中,然后以該形式返回最新日期,否則?

謝謝!

您正在使用UNIX TIMESTAMP,它將無法在Windows OS系統中正常工作。

嘗試使用此功能將其轉換。 轉換20031230233029為30/12/2003 23:30:59

function mysql_timestamp_para_humano($dt) {
    $yr=strval(substr($dt,0,4));
    $mo=strval(substr($dt,4,2));
    $da=strval(substr($dt,6,2));
    $hr=strval(substr($dt,8,2));
    $mi=strval(substr($dt,10,2));
    $se=strval(substr($dt,12,2)); 
    return date("d/m/Y H:i:s", mktime ($hr,$mi,$se,$mo,$da,$yr));
}

或這個

function timestamp_para_humano($ts) {
    $d=getdate($ts);
    $yr=$d["year"];
    $mo=$d["mon"];
    $da=$d["mday"];
    $hr=$d["hours"];
    $mi=$d["minutes"];
    $se=$d["seconds"];
    return date("d/m/Y", mktime($hr,$mi,$se,$mo,$da,$yr));
}

或者您可以嘗試通過另一個函數將unix時間戳轉換為mysql時間戳

function timestamp_para_mysql_timestamp($ts) {
    $d=getdate($ts);
    $yr=$d["year"];
    $mo=$d["mon"];
    $da=$d["mday"];
    $hr=$d["hours"];
    $mi=$d["minutes"];
    $se=$d["seconds"];
    return sprintf("%04d%02d%02d%02d%02d%02d",$yr,$mo,$da,$hr,$mi,$se);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM