Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Konwertuj czas JavaScript na format MySQL za pomocą PHP

Ponieważ ciąg daty zawiera już strefę czasową, nie musisz robić nic specjalnego:

$when = new DateTime('Sun Jul 13 2014 07:00:00 GMT+0200 (EET)');
echo $when->format('Y-m-d H:i:s');

Jak zauważono w komentarzach, ten ciąg w rzeczywistości zawiera dwa bity informacji o strefie czasowej, UTC + 2 i EET (czas wschodnioeuropejski), a PHP w zasadzie ignoruje ten drugi. W tym przykładzie widać to lepiej:

var_dump(new DateTime('Sun Jul 13 2014 07:00:00 GMT+0200 (EET)'), DateTime::getLastErrors());
var_dump(new DateTime('Sun Jul 13 2014 07:00:00 GMT+0200'), DateTime::getLastErrors());
var_dump(new DateTime('Sun Jul 13 2014 07:00:00 (EET)'), DateTime::getLastErrors());
object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2014-07-13 07:00:00.000000"
  ["timezone_type"]=>
  int(1)
  ["timezone"]=>
  string(6) "+02:00"
}
array(4) {
  ["warning_count"]=>
  int(1)
  ["warnings"]=>
  array(1) {
    [34]=>
    string(29) "Double timezone specification"
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
}
object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2014-07-13 07:00:00.000000"
  ["timezone_type"]=>
  int(1)
  ["timezone"]=>
  string(6) "+02:00"
}
array(4) {
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
}
object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2014-07-13 07:00:00.000000"
  ["timezone_type"]=>
  int(2)
  ["timezone"]=>
  string(3) "EET"
}
array(4) {
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
}

W rzeczywistości musimy rozebrać jeden z nich, np.:

$js_date_string = 'Sun Jul 13 2014 07:00:00 GMT+0200 (EET)';
// Regular expression is shown for illustration purposes, it's probably wrong!
$tmp_date_string = preg_replace('/ GMT\+\d{4}/ui', '', $js_date_string);

$when = new DateTime($tmp_date_string);
var_dump($when, DateTime::getLastErrors());
echo $when->format('Y-m-d H:i:s');
object(DateTime)#1 (3) {
  ["date"]=>
  string(26) "2014-07-13 07:00:00.000000"
  ["timezone_type"]=>
  int(2)
  ["timezone"]=>
  string(3) "EET"
}
array(4) {
  ["warning_count"]=>
  int(0)
  ["warnings"]=>
  array(0) {
  }
  ["error_count"]=>
  int(0)
  ["errors"]=>
  array(0) {
  }
}
2014-07-13 07:00:00


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak porównywać wydajność Moodle?

  2. mysql konwertuje datę na tę samą datę bieżącego roku

  3. pobierz obrazy base64 z bazy danych

  4. Zapytanie do bazy danych CodeIgniter przy użyciu funkcji query() z klauzulą ​​IN

  5. tworzenie listy znajomych w mysql