Ich arbeite mit der SparkPost-API und ich habe Probleme zu verstehen, wie Sie ein Datum mit YYYY-MM-DDTHH: MM erstellen : SS + -HH: MM in PHP.Erstellen dieses Datumsformat in PHP: JJJJ-MM-TTTHH: MM: SS + -HH: MM
Was ist + -HH: MM, ist das die Zeitzone?
Der nächstgelegene ich von der Überprüfung anderer ähnlicher Stapelaustausch Themen gekommen sind, ist dies:
if (!$send_now && self::$row->datetime)
{
// This data is available: [send_datetime] => 04/01/2016 01:30
// This data is available: [timezone] => MDT-UTC-7
$send_at = date('Y-m-dTH:i:s' , strtotime(self::$row->datetime));
}
else
{
$send_at = 'now';
}
Ein weiterer FYI mit Wordpress Ich arbeite und die Zeitzone die Instanz auf ausrichten möchten.
Jede Hilfe wird geschätzt.
aktualisiert Code,
if (!$send_now && self::$row->datetime) {
$send_at = date('c' , strtotime(self::$row->datetime));
if (isset(self::$email_settings['timezone'])) {
$date_parts = explode('+' , $send_at);
$timezone_parts = explode('UTC' , self::$email_settings['timezone']);
$send_at = $date_parts[0] .$timezone_parts[1].':00';
}
} else {
$send_at = 'now';
}
Gibt es einen Trick, um die Zeitzone richtig eingestellt, wenn alles, was ich habe, sind Strings wie 'MDT-UTC-7' (Ich glaube, das ist Mountain Time) und CDT-UTC-5 für Central? Ich könnte den letzten Teil der Zeichenfolge analysieren, aber ist PHP Setup diese Kurzzeichenfolgen zu interpretieren? – atwellpub
Sie könnten 'timezone_name_from_abbr' verwenden, um die Zeitzone mit allen oder einem Teil dieser Zeichenfolgen wie' $ timezone = timezone_name_from_abbr ('CDT-UTC-5') 'zu erhalten. Sie müssen möglicherweise die ersten drei Buchstaben analysieren, z. CDT. Sie könnten dann die Zeitzone übergeben, wenn Sie das Datum wie '$ date = new DateTime ('04/01/2016 01:30 ', neue DateTimeZone ($ timezone));'. Dann geben Sie es als ISO 8601 mit '$ date-> format ('c')' aus. – Michael