예를 들어 '22-09-2008'에서 타임스탬프를 얻으려면 어떻게 해야 하나요?
PHP의 strtotime()
은 다음을 제공합니다.
$timestamp = strtotime('22-09-2008');
이는 지원되는 날짜 및 시간 형식 Docs와 함께 작동합니다.
정확히 하나의 형식을 기대하는 strptime()
도 있습니다:
$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900);
['DateTime 의 API 가] 와 1:
$dateTime = new DateTime('2008-09-22');
echo $dateTime->format('U');
// or
$date = new DateTime('2008-09-22');
echo $date->getTimestamp();
함께 같은 절차적 API:
$date = date_create('2008-09-22');
echo date_format($date, 'U');
// or
$date = date_create('2008-09-22');
echo date_timestamp_get($date);
위의 실패할 경우 사용 중인 지원되지 않는 형식입니다. 사용할 수 있습니다.
$date = DateTime::createFromFormat('!d-m-Y', '22-09-2008');
echo $dateTime->format('U');
// or
$date = date_parse_from_format('!d-m-Y', '22-09-2008');
echo date_format($date, 'U');
참고로 설정하지 않으면! ',' 이 될 수 있는 시간 부분은 현재 시간을 설정할 때 사용할 수 있는 첫 번째 4 시간 생략하십시오 자정 다르다.
'린틀다테퍼매터' apiu 아직 사용할 수 있는 방법도 있다.
$formatter = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'GMT',
IntlDateFormatter::GREGORIAN,
'dd-MM-yyyy'
);
echo $formatter->parse('22-09-2008');
작업하는 경우가 아니라면 현지화됩니다 문자열을 날짜 간소화하는지 솔루션으로서의 DateTime 보인다.
같은 기능을 할 수 있는 " guess" 스트라토타임 () ',' 주의해야 합니다. 무슨 뜻인지 (it doesn& # 39 의 것 (물론, t [규칙은 여기서요] [1]).
그러나 22일 9월 2008년 , 22-09-2008 '을' 유일한 합리적인 것 때문에 이와 같이 분석한다.
'08-09-2008' 은 어떻게 구문 분석할 수? 09일 8월 2008년 것이다.
'' 50 2008 09 어때? 20일 10월 2008년 이 같은 일부 버전은 php 구문 분석.
따라서 '에서' 형식, 사용자 입력 복제본인지 확실하지 dd yy mm it& # 39 에 사용할 수 있는 솔루션을 제공하는 나으뇨 [@armin 호나처] [1].
[1]: https://stackoverflow.com/questions/113829/date-to-timestamp-php # 113871
< br/>;
Php 5.3 이상을 경우,
$d = DateTime::createFromFormat('d-m-Y', '22-09-2008');
echo $d->getTimestamp();
< br/>;
스케쳐내 지정할 수 있는 시간대, 여기 설정되었습니다. (같은 뉴욕.)
$d = DateTime::createFromFormat('d-m-Y', '22-09-2008', new DateTimeZone('EST'));
echo $d->getTimestamp();
< br/>;
사용할 경우 또는 맞이하였다. (같은 GMT" ";).
$d = DateTime::createFromFormat('d-m-Y', '22-09-2008', new DateTimeZone('UTC'));
echo $d->getTimestamp();
< br/>;
날짜를 시간스탬프와 스트라토타임 () 함수를 사용하여 쉽게 변환할 수 있습니다
<?php
// set default timezone
date_default_timezone_set('America/Los_Angeles');
//define date and time
$date = date("d M Y H:i:s");
// output
echo strtotime($date);
?>
추가 정보: http://php.net/manual/en/function.strtotime.php
온라인 변환 도구에서는: http://freeonlinetools24.com/
이것은 매우 단순하고 효과적인 솔루션을 '' 와 '' 기능을 사용하여 분할합니다 마티메.
$date="30/07/2010 13:24"; //Date example
list($day, $month, $year, $hour, $minute) = split('[/ :]', $date);
//The variables should be arranged according to your date format and so the separators
$timestamp = mktime($hour, $minute, 0, $month, $day, $year);
echo date("r", $timestamp);
이 같은 매력을 협력했습니다 가져다줄래요.
기능을 사용할 수 없는 점을 감안하면 'strptime ()' 와 '스트라토타임 windows*용 예상치 못한 결과를 반환할 수 ()' 나 ' ()' date_parse_from_format 사용하는 것이 좋습니다.
$date = date_parse_from_format('d-m-Y', '22-09-2008');
$timestamp = mktime(0, 0, 0, $date['month'], $date['day'], $date['year']);
궁금해할까봐 당신이 데이트 '에 대한 얻을 수 있을 것인지 잘 구문 분석 ()' datetime 크리스 프롬포르마 사용할 수 있습니다.
$d = DateTime::createFromFormat('d-m-Y', '22-09-2008');
if ($d === false) {
die("Woah, that date doesn't look right!");
}
echo $d->format('Y-m-d'), PHP_EOL;
// prints 2008-09-22
그러나 이 경우 (예: 03-04-2008 ',' s 명백하네 it& # 39, 4일 3월 또는 3일 4월 수 있는 위치에 따라 you come from:)
<?php echo date('M j Y g:i A', strtotime('2013-11-15 13:01:02')); ?>
'형식' strptime '알고 있는 경우 사용할 수 있는 것 때문에' 수행합니까 스트라토타임 형식에 대한 것이 항상 정확합니다. 이후 'strptime' Windows 의 사용자 정의 함수 좁히어 가 구현되지 않았습니다.
1900년! '에서' 는 tm_year 레투른바루이 것을 기억하십시오. '와' 는 11 0 tm_month
예:
$a = strptime('22-09-2008', '%d-%m-%Y');
$timestamp = mktime(0, 0, 0, $a['tm_mon']+1, $a['tm_mday'], $a['tm_year']+1900)
다음은 어떻게 I& # 39; d do it.
function dateToTimestamp($date, $format, $timezone='Europe/Belgrade')
{
//returns an array containing day start and day end timestamps
$old_timezone=date_timezone_get();
date_default_timezone_set($timezone);
$date=strptime($date,$format);
$day_start=mktime(0,0,0,++$date['tm_mon'],++$date['tm_mday'],($date['tm_year']+1900));
$day_end=$day_start+(60*60*24);
date_default_timezone_set($old_timezone);
return array('day_start'=>$day_start, 'day_end'=>$day_end);
}
$timestamps=dateToTimestamp('15.02.1991.', '%d.%m.%Y.', 'Europe/London');
$day_start=$timestamps['day_start'];
이렇게 하면 더 잘 사용하고, 심지어 함수은 날짜 형식 지정 시간대.
function date_to_stamp( $date, $slash_time = true, $timezone = 'Europe/London', $expression = "#^\d{2}([^\d]*)\d{2}([^\d]*)\d{4}$#is" ) {
$return = false;
$_timezone = date_default_timezone_get();
date_default_timezone_set( $timezone );
if( preg_match( $expression, $date, $matches ) )
$return = date( "Y-m-d " . ( $slash_time ? '00:00:00' : "h:i:s" ), strtotime( str_replace( array($matches[1], $matches[2]), '-', $date ) . ' ' . date("h:i:s") ) );
date_default_timezone_set( $_timezone );
return $return;
}
// expression may need changing in relation to timezone
echo date_to_stamp('19/03/1986', false) . '<br />';
echo date_to_stamp('19**03**1986', false) . '<br />';
echo date_to_stamp('19.03.1986') . '<br />';
echo date_to_stamp('19.03.1986', false, 'Asia/Aden') . '<br />';
echo date('Y-m-d h:i:s') . '<br />';
//1986-03-19 02:37:30
//1986-03-19 02:37:30
//1986-03-19 00:00:00
//1986-03-19 05:37:30
//2012-02-12 02:37:30
날짜 / 시간 파워존에서 데이터베이스에 대한 주의하십시오 설정하면 저장 문제가 있는 데 비해, as I got 때 내가 mysql 에서 날짜 "사용 '' 시간스탬프와 변환되었습니다 스트라토타임 '. 동시에 변환하기 전에 날짜를 정확히 사용해야 합니다 / 파워존에서 시간스탬프와 그렇지 않으면 스트라토타임 () 가 기본 서버 사용 시간대.
제발 이 슬라이드에서는 예: https://3v4l.org/BRlmV
function getthistime($type, $modify = null) {
$now = new DateTime(null, new DateTimeZone('Asia/Baghdad'));
if($modify) {
$now->modify($modify);
}
if(!isset($type) || $type == 'datetime') {
return $now->format('Y-m-d H:i:s');
}
if($type == 'time') {
return $now->format('H:i:s');
}
if($type == 'timestamp') {
return $now->getTimestamp();
}
}
function timestampfromdate($date) {
return DateTime::createFromFormat('Y-m-d H:i:s', $date, new DateTimeZone('Asia/Baghdad'))->getTimestamp();
}
echo getthistime('timestamp')."--".
timestampfromdate(getthistime('datetime'))."--".
strtotime(getthistime('datetime'));
//getthistime('timestamp') == timestampfromdate(getthistime('datetime')) (true)
//getthistime('timestamp') == strtotime(getthistime('datetime')) (false)
function UTCToTimestamp($utc_datetime_str)
{
preg_match_all('/(.+?)T(.+?)\.(.*?)Z/i', $utc_datetime_str, $matches_arr);
$datetime_str = $matches_arr[1][0]." ".$matches_arr[2][0];
return strtotime($datetime_str);
}
$my_utc_datetime_str = '2016-02-14T12:24:48.321Z';
$my_timestamp_str = UTCToTimestamp($my_utc_datetime_str);