powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как отобразить дату и время?
13 сообщений из 13, страница 1 из 1
Как отобразить дату и время?
    #36252067
srsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть метод выводящий текст:
Method DrawTime(slice) As %Status
{
write "Сегодня: "_""_" Время: "_""
quit $$$OK
}
Мне необходимо сделать так что бы выводимый текст выглядел так: "Сегодня 15 октября 2009 Время 10:41" название месяца на русском и что бы время "шло" т.е. динамическое.
Как можно модифицировать метод???
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #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
Как отобразить дату и время?
    #36252155
srsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan.Kokov,
А как сделать что бы время изменялось динамически в соответствии с системным временем?
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #36252168
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
srsd , брать значение из спецпеременной $h... Ivan.Kokov же даже пример дал...

Ты как этот метод используешь и где?
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #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
Как отобразить дату и время?
    #36252231
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
s month=" января февраля марта апреля мая июня июля августа сентября октября ноября декабря"
w "Сегодня ",$zd($h, 2 ,month)," Время ",$zt($p($h,",", 2 ), 2 )
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #36252245
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит чтобы время изменялось? Оно меняется совсем без нашего участия :-)
Вам нужно вызывать этот метод по таймеру и перерисовывать элемент?
Так это непосредственно к задаче отображения времени не относится.
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #36252307
neznau
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в принципе, если не нужно именно серверное время, а сойдет и клиентское, можно вообще без каше обойтись (можно на javascript) :) но это наверно не в тему
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #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
Как отобразить дату и время?
    #36252527
srsd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Блок А.Н.,

А в примере показать... если возможно!?
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #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
Как отобразить дату и время?
    #36252903
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА в примере показать... если возможно!?
Могу только без использоваения ZEN пример сделать. Но у вас же ZEN?
...
Рейтинг: 0 / 0
Как отобразить дату и время?
    #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
13 сообщений из 13, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как отобразить дату и время?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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