我使用webscraping.its在柏林时区中以字符串形式获取日期时间,我想将其转换为莫斯科时间。
我这样做如下:
$date_str ="7/4/2019 3:30";
try {
$date = new DateTime($date_str, new DateTimeZone('Europe/Berlin'));
$date->setTimezone(new DateTimeZone('Europe/Moscow'));
$date_in_moscow = $date->format('d/m/Y H:i');
} catch (Exception $e) {
echo "error";
}
当$ date_str中的day有一个数字,如“ 7”(不为零)时,一切都可以。但是当day有2个数字,如“ 17”时,catch块将被调用。 我尝试使用('j / n / Y H:i')作为格式,但结果相同。 我不知道为什么?是因为格式类型吗?
答案 0 :(得分:0)
将格式$ date_str更改为“ m / d / Y H:i”,例如“ 7/17/2019 3:30”
答案 1 :(得分:0)
您面临的问题是由于您使用的是日期格式为 d / m / Y 的日期字符串,而2019-07-07 10:22:20,314 [myid:2] - INFO [ProcessThread(sid:2 cport:-1)::PrepRequestProcessor@653] - Got user-level KeeperException when processing sessionid:0x1013041373b0073 type:setData cxid:0x5732 zxid:0x4e0011f115 txntype:-1 reqpath:n/a Error Path:/kafka/brokers/topics/partition-name/partitions/7/state Error:KeeperErrorCode = BadVersion for /kafka/brokers/topics/partition-name/partitions/7/state
希望日期字符串为 m / d / Y 格式。
为了绕过此问题,您需要按以下方式更改函数调用:
DateTime::__construct