Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как отобразить дату и время? / 13 сообщений из 13, страница 1 из 1
15.10.2009, 08:46
    #36252067
srsd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Есть метод выводящий текст:
Method DrawTime(slice) As %Status
{
write "Сегодня: "_""_" Время: "_""
quit $$$OK
}
Мне необходимо сделать так что бы выводимый текст выглядел так: "Сегодня 15 октября 2009 Время 10:41" название месяца на русском и что бы время "шло" т.е. динамическое.
Как можно модифицировать метод???
...
Рейтинг: 0 / 0
15.10.2009, 09:05
    #36252098
Ivan.Kokov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
srsd,

Есть $zdt - функция, умеющая выводить дату-время:
Первым параметром надо ей дать $h - хоролог
Вторым - номер формата

10/15/2009 12:49:58
15 Oct 2009 12:49:58
2009-10-15 12:49:58
15/10/2009 12:49:58
Oct 15, 2009 12:49:58
Oct 15 2009 12:49:58
Oct 15 2009 12:49:58
20091015 12:49:58
October 15, 2009 12:49:58

Например: w "Сегодня "_$zdt($h,4) выведет 15/10/2009 12:49:58
Но если уж принципиально название месяца, то лучше загнать его в массив и вычислить
Например, так:
set names="января,февраля,марта,..."
set dt=$tr($zdt($h,4),"/"," ") // текстовое представление даты и "/" заменить на пробел
set d=$p(dt," ")
set m=$p(names,",",$p(dt," ",2))
set y=$p(dt," ",3)
set t=$p(dt," ",4)
set result="Сегодня "_d_" "_m_" "_y_" года Время "_t
...
Рейтинг: 0 / 0
15.10.2009, 09:29
    #36252155
srsd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Ivan.Kokov,
А как сделать что бы время изменялось динамически в соответствии с системным временем?
...
Рейтинг: 0 / 0
15.10.2009, 09:34
    #36252168
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
srsd , брать значение из спецпеременной $h... Ivan.Kokov же даже пример дал...

Ты как этот метод используешь и где?
...
Рейтинг: 0 / 0
15.10.2009, 09:49
    #36252201
srsd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
krvsa,
На странице есть элемент:
<html OnDrawContent="DrawTime" containerStyle="color:blue;" align="center" />

И метод на этот элемент уже так выглядит:
Method DrawTime(slice) As %Status
{
Set month="Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь"
Set dt=$tr($zdt($h,4),"/"," ")
Set d=$p(dt," ")
Set m=$p(month,",",$p(dt," ",2))
Set y=$p(dt," ",3)
Set t=$p(dt," ",4)
Set resultD = d_" "_m_" "_y_" год"
Set resultT = t
Write "Сегодня: "_resultD_" Время: "_resultT
quit $$$OK
}
Как сделать что бы время изменялось динамически в соответствии с системным временем, секунды не нужны, только часы и минуты?
...
Рейтинг: 0 / 0
15.10.2009, 10:03
    #36252231
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Код: plaintext
1.
s month=" января февраля марта апреля мая июня июля августа сентября октября ноября декабря"
w "Сегодня ",$zd($h, 2 ,month)," Время ",$zt($p($h,",", 2 ), 2 )
...
Рейтинг: 0 / 0
15.10.2009, 10:06
    #36252245
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Что значит чтобы время изменялось? Оно меняется совсем без нашего участия :-)
Вам нужно вызывать этот метод по таймеру и перерисовывать элемент?
Так это непосредственно к задаче отображения времени не относится.
...
Рейтинг: 0 / 0
15.10.2009, 10:28
    #36252307
neznau
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
в принципе, если не нужно именно серверное время, а сойдет и клиентское, можно вообще без каше обойтись (можно на javascript) :) но это наверно не в тему
...
Рейтинг: 0 / 0
15.10.2009, 10:53
    #36252409
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
В любом случае нужно воспользоваться методом

автор Syntax

Код: plaintext
iTimerID = window.setInterval(vCode, iMilliSeconds [, sLanguage])
Parameters

Параметр ОписаниеvCode Required Variant that specifies a function pointer or string that indicates the code to be executed when the specified interval has elapsed. iMilliSeconds Required Integer that specifies the number of milliseconds. sLanguage Optional String that specifies any one of the possible values for the LANGUAGE attribute.
Return Value

Integer. Returns an identifier that cancels the timer with the clearInterval method.


А вот что вызывать, кащейское гипперсобытие или скриптовую функцию - дело вкуса/надобности...
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
15.10.2009, 11:25
    #36252527
srsd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Блок А.Н.,

А в примере показать... если возможно!?
...
Рейтинг: 0 / 0
15.10.2009, 12:11
    #36252729
Ymka2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
Class WEB.CLS.CLSRaschet Extends %ZEN.Component.page
{
Parameter APPLICATION = "WEB.ApplicationWeb";
Parameter PAGENAME = "CLSRaschet";
Parameter DOMAIN = "WEB";
Property str As %ZEN.Datatype.caption;

XData Contents [ XMLNamespace = "http://www.intersystems.com/zen" ]
{
<page enclosingStyle="background: #c5d6d6; background-repeat: repeat-x;
background-image: url(/csp/broker/images/sidebargradient.png);" 
xmlns="http://www.intersystems.com/zen" title="">
<form id="status" hidden="#(%page.GetStatus1())#">
<timer id="timer"  
	ontimeout="zenPage.msgTimer(zenThis);" 
	timeout="5000"/>
<label id="strStatus" value="Статус расчета: #(%page.GetStatusTCLS())#" 
enclosingStyle="font:bold; font-size:18; margin-bottom:20;"/>
<label value="Время начала расчета: #(%page.GetStartTime())#"/>
<label value="Приблизительное время окончания расчета: #(%page.GetEndTime())#"/>
<label value="Осталось до окончания расчета: #(%page.GetTime())# минут"
enclosingStyle="margin-top:20;"/>
</form>
</hgroup>
 </page>
}

ClassMethod Raschet(rDat As %String, type As %Boolean) As %String [ ZenMethod ]
{
	s PLID = $g(PLID)
	s type = $g(type)
	s rDat = $g(rDat)
	s res =  1 
	s r = $d(^R.STATUS)
	i r'=0 {
		s r = $d(^R.STATUS("Error"))
		i r'= 0  { 
			s res = $p($g(^R.STATUS("Error")),"Error! ", 2 )
			&js<alert('Во время расчета классификации произошла ошибка\n#(res)#');>
			s res =  0 
		}
		else {
			&js<alert('В данный момент идет расчет классификации!\nПовторный расчет классификации невозможен!');>
			s res =  0 
		}
	}
	q:res= 0   1 
	j ##class(RTT.TCLStest).ALLCLS($zdh(rDat, 3 ),type)
	s time = $PIECE($HOROLOG,",", 2 )
	&js<alert('Расчет классификации запущен в #($ZTIME(time,2))#\nПриблизительное время окончания расчета #($ZTIME((time+3000),2))#')> 
	q  0 
}

Method calendarSettings(settings) [ Language = javascript ]
{
	settings.monthList = "Январь,Февраль,Март,Апрель,Май,Июнь,Июль,Август,Сентябрь,Октябрь,Ноябрь,Декабрь";
	settings.dayList = "Вс,Пн,Вт,Ср,Чт,Пт,Сб";
	settings.firstDayOfWeek= 1 ;
}

ClassMethod GetQuickLinks(Output pLinks) As %Status
{
	#; dispatch to our application class
	Quit %application.GetQuickLinks(.pLinks)
}

ClassMethod pGetDate() As %String
{
	s a = $zd($h)
	s $p(a,"/", 2 ) =  1 
	q $zd($zdh(a), 3 )
}

ClassMethod GetStatus() As %Boolean
{
	if $d(^R.STATUS)= 0  q  0 
	q  1 
}

ClassMethod GetStatus1() As %Boolean
{
	if $d(^R.STATUS)'=0 q 0
	q 1
}

ClassMethod GetStartTime()
{
	q:$d(^R.STATUS("StartTime"))'= 0  $ZTIME($g(^R.STATUS("StartTime")), 2 )
	q  0 
}

ClassMethod GetEndTime()
{
	q:$d(^R.STATUS("StartTime"))'=0 $ZTIME(($g(^R.STATUS("StartTime"))+3000),2)
	q 0
}

ClassMethod GetTime()
{
	if $d(^R.STATUS("StartTime"))'= 0  {
		s endtime = $g(^R.STATUS("StartTime"))+ 3000 
		s curtime = $PIECE($HOROLOG,",", 2 )
		q:endtime>curtime $ZTIME((endtime-curtime), 1 )		
	}
	q  0 
}

ClassMethod GetStatusTCLS() As %String [ ZenMethod ]
{
	if $d(^R.STATUS)'=0 {
		if $d(^R.STATUS("Error")) {
			s %page.str="Error"
			q $g(^R.STATUS("Error"))
		}
		q "Расчет запущен"
	}
	q "Расчет окончен"
}

Method msgTimer(timer) [ Language = javascript ]
{
	if (this.str != 'Error') {
		var html = this.getComponentById('status');
		zenASSERT(html,"Unable to find html object",arguments);
		html.refreshContents();
		timer.startTimer();
	}
}

}
вот примерный код, я кое что удалил, поэтому может сходу не сработать, но принцип обновления компонента по таймеру прописан
...
Рейтинг: 0 / 0
15.10.2009, 12:58
    #36252903
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
авторА в примере показать... если возможно!?
Могу только без использоваения ZEN пример сделать. Но у вас же ZEN?
...
Рейтинг: 0 / 0
16.10.2009, 06:38
    #36254593
srsd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как отобразить дату и время?
Проблемма решена... и вот как:
Создал элемент:
<timer id="timer" ontimeout="zenPage.msgTimer(zenThis);" timeout="1000"/>
<html id="msgBox" OnDrawContent="DrawTime" containerStyle="color:blue;" align="center" />
И два метода:

Для обновления таймера:
var html = this.getComponentById('msgBox');
html.refreshContents();
timer.startTimer();

А второй как описал Ivan.Kokov.... с небольшими доработками... и вот результат:
Сегодня: 16 Октябрь 2009 год Время: 08:36:03.... получились обычные часы, время тикает все как хотелось.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как отобразить дату и время? / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]