A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://php.net/manual/en/intldateformatter.localtime.php below:

PHP: IntlDateFormatter::localtime - Manual

IntlDateFormatter::localtime datefmt_localtime

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::localtime -- datefmt_localtimeParse string to a field-based time value

Description

Object-oriented style

Parameters
formatter

The formatter resource

string

string to convert to a time

offset

Position at which to start the parsing in $value (zero-based). If no error occurs before $value is consumed, $parse_pos will contain -1 otherwise it will contain the position at which parsing ended . If $parse_pos > strlen($value), the parse fails immediately.

Return Values

Localtime compatible array of integers : contains 24 hour clock value in tm_hour field, or false on failure.

Examples

Example #1 datefmt_localtime() example

<?php

$fmt

= datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$arr = datefmt_localtime($fmt, 'Wednesday, December 31, 1969 at 4:00:00 PM Pacific Standard Time', $offset);
echo
'First parsed output is ';
if (
$arr) {
foreach (
$arr as $key => $value) {
echo
"$key : $value , ";
}
}
?>

Example #2 OO example

<?php
$fmt
= new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
$arr = $fmt->localtime('Wednesday, December 31, 1969 at 4:00:00 PM Pacific Standard Time', $offset);
echo
'First parsed output is ';
if (
$arr) {
foreach (
$arr as $key => $value) {
echo
"$key : $value , ";
}
}
?>

The above example will output:

First parsed output is tm_sec : 0 , tm_min : 0 , tm_hour : 16 , tm_year : 69 ,
tm_mday : 31 , tm_wday : 3 , tm_yday : 365 , tm_mon : 11 , tm_isdst : 0 ,
Patanjali

8 years ago

Learning lesson here: Never trust the PHP documentation. Test everything!

$position does not work as described, at least in PHP 7. After parsing without errors, it does not contain -1.

You can still use it to set the parsing start character position, but not necessarily whether any errors occurred.

To test for errors, replace my $nPosition test code in the other note with:


<?php
$bError = intl_is_failure(datefmt_get_error_code(oIDF));if(!$bError){
...
}else{
...
}
?>
Patanjali

8 years ago

You can use datefmt_localtime to convert a user's time string, input using their locale's script, into standard numbers for checking, using a simple HTML input element.

This avoids using clunky HTML select elements formatted with hour and minute options in the locale's script to capture user input.

<?php
$sLocale = 'en-us'; $sLocale = 'ar-ye'; $oIDF = datefmt_create($sLocale, IntlDateFormatter::NONE, IntlDateFormatter::SHORT);$sTime = datefmt_format($oIDF, ['tm_hour'=>15, 'tm_min'=>25]);
$nPosition = 0;$aTime = datefmt_localtime($oIDF, $sTime, $nPosition);
if($nPosition = -1){
...
}else{
...
}
?>


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4