这是我得到的警告:
PHP 警告: strtotime(): 依赖系统的时区设置是不安全的。您需要使用 date.timezone 设置或 date_default_timezone_set() 函数。如果您使用了其中任何一种方法,但仍然收到此警告,则很可能拼写错了时区标识符。我们在第 38 行的/data1/home/spaceweather/Scripts/casesFiles_InsertIntoDataBase.php 中选择了"美国/芝加哥"作为"CST/-6.0/无夏令时"
这是我用于在脚本中设置时区的代码。
我正在尝试消除 PHP 警告并将其指定为 UTC 到 strtotime(),而不是我系统上时区的默认时区。(附言去黑鹰!
$year = substr($filePath[$row], -17,4); //where this outputs a simple year 'CCYY'
$day = $days2[$days2keys[$i]]; //where this provides the day of year
$format = 'Y-z'; //specifying what format i'm creating the datetime with
$date = $year . '-' . $day; //formatting the strings to the above $format
$timezone = new DateTimeZone('UTC'); //specify the timezone
$fileDateStore[$row] = DateTime::createFromFormat($format, $date, $timezone); //create the DateTime object
$fileDateString[$row] = date_format($fileDateStore[$row],"Y-m-d".PHP_EOL); //format it so strtotime() can read it
$fileDate[$row] = strtotime($fileDateString[$row]); //finally create the Unix Timestamp for the date.
然后稍后,我使用以下代码将其存储到数据库中:
//connect to the database
$con=mysqli_connect("server","database","username","password");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
for($j = 1; $j < $numrows; $j++) {
$date = $fileDate[$j];
mysqli_query($con,"INSERT INTO tablename (fileDate)
VALUES (".$date.")");
}
mysqli_close($con);
echo "task finished and database connection closed.".PHP_EOL;
编辑您的php.ini
文件并添加类似于
date.timezone = America/Chicago
或者,可以在代码中使用 date_default_timezone_set()
函数:
date_default_timezone_set('America/Chicago');
有关有效值的列表,请查看 http://php.net/manual/en/timezones.php