date_parse
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
date_parse
Референца за `function.date-parse.php` со подобрена типографија и навигација.
date_parse
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
date_parse — Враќа асоцијативен низ со детални информации за даден датум/време
= NULL
date_parse() парсира даден
datetime низа според истите правила како
strtotime() and
комбинирани формати. Наместо да враќа Unix временски печат (со strtotime()) или
DateTimeImmutable објект (со
комбинирани формати), враќа асоцијативен низ со информациите што може да ги открие во дадениот
datetime string.
низа овие елементи ќе бидат поставени на false или недостасуваат. Ако е потребно за конструирање временски печат или DateTimeImmutable објект од истиот datetime низа, повеќе полиња може да бидат поставени на не-false вредност. Погледнете ги примерите за случаи каде што тоа се случува.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. array со информации за парсираниот датум/време.
Вратениот низ има клучеви за year,
month, day, hour,
minute, second,
fractionПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во is_localtime.
Враќа is_localtime е присутен тогаш
zone_type го означува типот на временската зона. За тип
1 (UTC поместување) полињата zone,
is_dst се додаваат; за тип 2
(кратенка) полињата tz_abbr,
is_dst се додаваат; и за тип 3
(идентификатор на временска зона) на tz_abbr,
tz_id се додаваат.
Ако релативни временски елементи се присутни во
datetime низата како +3 days, тогаш вратениот низ вклучува вгнезден низ со клуч
relative. Овој низ потоа ги содржи клучевите
year, month, day,
hour, minute,
second, и доколку е потребно weekdayПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
weekdays, во зависност од низата што е предадена.
Низата вклучува warning_count and
warnings полиња. Првото укажува колку предупредувања имало. Клучевите на елементите warnings низата укажуваат на позицијата во дадената datetime каде се случило предупредувањето, со текстуална вредност што го опишува самото предупредување.
Низата исто така содржи error_count and
errors полиња. Првото укажува колку грешки биле пронајдени. Клучевите на елементите errors низата укажуваат на позицијата во дадената datetime каде се случила грешката, со текстуална вредност што го опишува самата грешка.
Бројот на елементи во низата во warnings and
errors може да биде помал од
warning_count or error_count ако се случиле на иста позиција.
Errors/Exceptions
Во случај форматот на датум/време да има грешка, елементот 'errors' ќе ги содржи пораките за грешки.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 7.2.0 |
На zone елемент од вратениот низ претставува секунди наместо минути сега, и неговиот знак е инвертиран. На пример
-120 сега е 7200.
|
Примери
ако е овозможен колекторот за отпадоци, date_parse() пример со сеопфатен
datetime string
<?php
var_dump(date_parse("2006-12-12 10:00:00.5"));Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(12) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Елементите на временската зона се појавуваат само ако се вклучени во дадениот
datetime низа. Во тој случај секогаш ќе има zone_type елемент и неколку повеќе во зависност од неговата вредност.
Пример #2 date_parse() со информации за кратенка на временската зона
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 BST"));Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(16) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(2)
["zone"]=>
int(0)
["is_dst"]=>
bool(true)
["tz_abbr"]=>
string(3) "BST"
}
Пример #3 date_parse() со информации за идентификатор на временската зона
<?php
var_dump(date_parse("June 2nd, 2022, 10:28:17 Europe/London"));Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(14) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(3)
["tz_id"]=>
string(13) "Europe/London"
}
Ако повеќе минимален datetime низа се парсира, помалку информации се достапни. Во овој пример, сите делови од времето се враќаат како false.
Пример #4 date_parse() со минимална низа
<?php
var_dump(date_parse("June 2nd, 2022"));Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(12) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
bool(false)
["minute"]=>
bool(false)
["second"]=>
bool(false)
["fraction"]=>
bool(false)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Релативни формати не влијаат на вредностите парсирани од апсолутни формати, туку се парсираат во елементот „релативно“.
Генератор date_parse() со релативни формати
<?php
var_dump(date_parse("2006-12-12 10:00:00.5 +1 week +1 hour"));Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(13) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
["relative"]=>
array(6) {
["year"]=>
int(0)
["month"]=>
int(0)
["day"]=>
int(7)
["hour"]=>
int(1)
["minute"]=>
int(0)
["second"]=>
int(0)
}
}
Некои стихови, како што се Thursday ќе го постави временскиот дел од низата на 0. Ако Thursday се предава на комбинирани формати исто така би резултирало со поставување на часот, минутата, секундата и фракцијата на
0. Во примерот подолу, сепак, елементот година е оставен како false.
Пример #6 date_parse() со странични ефекти
<?php
var_dump(date_parse("Thursday, June 2nd"));Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
array(13) {
["year"]=>
bool(false)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(0)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
["relative"]=>
array(7) {
["year"]=>
int(0)
["month"]=>
int(0)
["day"]=>
int(0)
["hour"]=>
int(0)
["minute"]=>
int(0)
["second"]=>
int(0)
["weekday"]=>
int(4)
}
}
Види Исто така
- date_parse_from_format() - Добиј информации за даден датум форматиран според специфицираниот формат за парсирање на
datetimeсо специфичен даден формат - checkdate() - Валидирај грегоријански датум за валидација на грегоријански датум
- getdate() - Земи информации за датум/време