Что нового

Получение времени из интернета

Isn

Новичок
Сообщения
119
Репутация
3
Приветствую всех пользователей форума.

Имеется пример для получения даты из интернета:
Код:
$URL = 'http://time.jp-net.ru/'
$ReadHTML = BinaryToString(InetRead($URL), 4)

$Data = StringRegExp($ReadHTML, '(\d+-\d+-\d+)', 3)
$SplitData = StringSplit($Data[0], ':')
MsgBox(64, "", $Data[0])


Что бы полчуить время нужно изменить StringRegExp посмотрел в справке но ни как не могу сообразить как отредактировать форматирование текста для получения времени.
За ранее спасибо.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Isn,
Можно примерно так.
Код:
Local $sURL = 'http://time.jp-net.ru/', $sRead, $sTime

$sRead = BinaryToString(InetRead($sURL, 17))
$sTime = StringRegExpReplace($sRead, '(?s).*(\d{2}(?::\d{2}){2}).*', '$1')
If @extended <> 1 Then $sTime = 'error'
ConsoleWrite('Точное время: ' & $sTime & @LF)
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Можно и так
Код:
$URL = 'http://time.jp-net.ru/'
$ReadHTML = BinaryToString(InetRead($URL), 4)
$aS=StringSplit($ReadHTML,@LF,2)
$aS=StringSplit($aS[7],":",2)
$sTime=StringTrimRight($aS[1],StringLen($aS[1])-StringInStr($aS[1],"<")+1)&@TAB&StringStripWS($aS[2],0)& _
		":"&$aS[3]&":"&StringTrimRight($aS[4],19)
MsgBox(0,'',$sTime)
 
Автор
Isn

Isn

Новичок
Сообщения
119
Репутация
3
Спасибо madmasles то что нужно.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Ещё вариант:

Код:
Local $sURL = 'http://time.jp-net.ru/', $sRead, $sTime

$sRead = BinaryToString(InetRead($sURL, 17))

$sPattern = "(?si).*<h1 align='center'>.*?%s: (.*?)</h1>.*"

$sTime = StringRegExpReplace($sRead, StringFormat($sPattern, 'время'), '$1')
If @extended <> 1 Then $sTime = 'error'

$sDate = StringRegExpReplace($sRead, StringFormat($sPattern, 'дата'), '$1')
If @extended <> 1 Then $sDate = 'error'

ConsoleWrite('Точное время: ' & $sTime & @LF)
ConsoleWrite('Точная дата: ' & $sDate & @LF)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
И еще вариант. :smile:
Код:
Local $sURL = 'http://time.jp-net.ru/', $sRead, $sTmp, $aWhat[2] = ['дата', 'время'], $sMess = 'Now:' & @LF

$sRead = BinaryToString(InetRead($sURL, 17))

For $i = 0 To 1
	$sTmp = StringRegExpReplace($sRead, '(?s).*' & $aWhat[$i] & ':\h*((?:\d{2}|\d{4})(?:[-:]\d{2}){2}).*', '$1')
	If @extended <> 1 Then $sTmp = 'error'
	$sMess &= $aWhat[$i] & ':' & @TAB & $sTmp & @LF
Next
ConsoleWrite($sMess)
Или еще проще.
Код:
Local $sURL = 'http://time.jp-net.ru/', $sRead, $sTmp, $aWhat[2] = ['дата', 'время'], $sMess = 'Now:' & @LF

$sRead = BinaryToString(InetRead($sURL, 17))

For $i = 0 To 1
	$sTmp = StringRegExpReplace($sRead, '(?s).*' & $aWhat[$i] & '\D+([\d:-]+).*', '$1')
	If @extended <> 1 Then $sTmp = 'error'
	$sMess &= $aWhat[$i] & ':' & @TAB & $sTmp & @LF
Next
ConsoleWrite($sMess)
 
Верх