Skip to content

Commit 09c13cd

Browse files
committed
Sync mktime with EN
1 parent 23e7c6a commit 09c13cd

1 file changed

Lines changed: 287 additions & 92 deletions

File tree

Lines changed: 287 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,105 +1,300 @@
1-
<?xml version="1.0" encoding="UTF-8"?>
2-
<!-- splitted from ./it/functions/datetime.xml, last change in rev 1.1 -->
3-
<!-- last change to 'mktime' in en/ tree in rev 1.2 -->
4-
<!-- EN-Revision: n/a Maintainer: curcio_it Status: ready -->
5-
<!-- OLD-Revision: 1.71/EN.1.2 -->
6-
<refentry xml:id="function.mktime" xmlns="http://docbook.org/ns/docbook">
7-
<refnamediv>
8-
<refname>mktime</refname>
9-
<refpurpose>Restituisce la UNIX timestamp per una data</refpurpose>
10-
</refnamediv>
11-
<refsect1>
12-
<title>Descrizione</title>
13-
<methodsynopsis>
14-
<type>int</type><methodname>mktime</methodname>
15-
<methodparam><type>int</type><parameter>hour</parameter></methodparam>
16-
<methodparam><type>int</type><parameter>minute</parameter></methodparam>
17-
<methodparam><type>int</type><parameter>second</parameter></methodparam>
18-
<methodparam><type>int</type><parameter>month</parameter></methodparam>
19-
<methodparam><type>int</type><parameter>day</parameter></methodparam>
20-
<methodparam><type>int</type><parameter>year</parameter></methodparam>
21-
<methodparam choice="opt"><type>int</type><parameter>is_dst</parameter></methodparam>
22-
</methodsynopsis>
23-
<para>
24-
<emphasis>Attenzione:</emphasis> Nota lo strano ordine degli
25-
argomenti, che differiscono dal normale ordine degli argomenti in una normale chiamata
26-
UNIX mktime() e che non si presta bene a far
27-
comparire i parametri da destra a sinistra (guarda sotto). E' un comune errore
28-
la confusione di questi argomenti in uno script.
29-
</para>
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: pastore Status: ready -->
3+
<!-- CREDITS: curcio_it -->
4+
<refentry xml:id="function.mktime" xmlns="http://docbook.org/ns/docbook">
5+
<refnamediv>
6+
<refname>mktime</refname>
7+
<refpurpose>Restituisce il timestamp Unix per una data</refpurpose>
8+
</refnamediv>
9+
10+
<refsect1 role="description">
11+
&reftitle.description;
12+
<methodsynopsis>
13+
<type class="union"><type>int</type><type>false</type></type><methodname>mktime</methodname>
14+
<methodparam><type>int</type><parameter>hour</parameter></methodparam>
15+
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>minute</parameter><initializer>&null;</initializer></methodparam>
16+
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>second</parameter><initializer>&null;</initializer></methodparam>
17+
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>month</parameter><initializer>&null;</initializer></methodparam>
18+
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>day</parameter><initializer>&null;</initializer></methodparam>
19+
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>year</parameter><initializer>&null;</initializer></methodparam>
20+
</methodsynopsis>
21+
<para>
22+
Restituisce il timestamp Unix corrispondente agli argomenti
23+
forniti. Questo timestamp è un numero intero lungo che contiene il numero di
24+
secondi trascorsi tra l'Epoca Unix (1 gennaio 1970 00:00:00 GMT) e l'ora
25+
specificata.
26+
</para>
27+
<para>
28+
Qualsiasi argomento opzionale
29+
omesso o &null; verrà impostato al valore corrente in base
30+
alla data e all'ora locali.
31+
</para>
32+
<warning>
33+
<para>
34+
Si noti che l'ordine degli argomenti è insolito:
35+
<parameter>month</parameter>, <parameter>day</parameter>,
36+
<parameter>year</parameter>, e non nel più logico ordine di
37+
<parameter>year</parameter>, <parameter>month</parameter>,
38+
<parameter>day</parameter>.
39+
</para>
40+
</warning>
41+
<simpara>
42+
Chiamare <function>mktime</function> senza argomenti non è supportato,
43+
e produrrà un <classname>ArgumentCountError</classname>.
44+
<function>time</function> può essere utilizzata per ottenere il timestamp corrente.
45+
</simpara>
46+
</refsect1>
47+
48+
<refsect1 role="parameters">
49+
&reftitle.parameters;
50+
<para>
51+
<variablelist>
52+
<varlistentry>
53+
<term><parameter>hour</parameter></term>
54+
<listitem>
55+
<para>
56+
Il numero dell'ora relativo all'inizio del giorno determinato da
57+
<parameter>month</parameter>, <parameter>day</parameter> e <parameter>year</parameter>.
58+
Valori negativi fanno riferimento all'ora precedente la mezzanotte del giorno in questione.
59+
Valori maggiori di 23 fanno riferimento all'ora appropriata nel/i giorno/i successivo/i.
60+
</para>
61+
</listitem>
62+
</varlistentry>
63+
<varlistentry>
64+
<term><parameter>minute</parameter></term>
65+
<listitem>
66+
<para>
67+
Il numero dei minuti relativo all'inizio dell'<parameter>hour</parameter>.
68+
Valori negativi fanno riferimento ai minuti dell'ora precedente.
69+
Valori maggiori di 59 fanno riferimento ai minuti appropriati nell'/nelle ora/e successiva/e.
70+
</para>
71+
</listitem>
72+
</varlistentry>
73+
<varlistentry>
74+
<term><parameter>second</parameter></term>
75+
<listitem>
76+
<para>
77+
Il numero dei secondi relativo all'inizio del <parameter>minute</parameter>.
78+
Valori negativi fanno riferimento ai secondi del minuto precedente.
79+
Valori maggiori di 59 fanno riferimento ai secondi appropriati nel/i minuto/i successivo/i.
80+
</para>
81+
</listitem>
82+
</varlistentry>
83+
<varlistentry>
84+
<term><parameter>month</parameter></term>
85+
<listitem>
86+
<para>
87+
Il numero del mese relativo alla fine dell'anno precedente.
88+
I valori da 1 a 12 fanno riferimento ai normali mesi del calendario dell'anno in questione.
89+
Valori inferiori a 1 (inclusi valori negativi) fanno riferimento ai mesi dell'anno precedente in ordine inverso, quindi 0 è dicembre, -1 è novembre, ecc.
90+
Valori maggiori di 12 fanno riferimento al mese appropriato nell'/negli anno/i successivo/i.
91+
</para>
92+
</listitem>
93+
</varlistentry>
94+
<varlistentry>
95+
<term><parameter>day</parameter></term>
96+
<listitem>
97+
<para>
98+
Il numero del giorno relativo alla fine del mese precedente.
99+
I valori da 1 a 28, 29, 30 o 31 (a seconda del mese) fanno riferimento ai giorni normali nel mese pertinente.
100+
Valori inferiori a 1 (inclusi valori negativi) fanno riferimento ai giorni del mese precedente, quindi 0 è l'ultimo giorno del mese precedente, -1 è il giorno prima, ecc.
101+
Valori maggiori del numero di giorni nel mese pertinente fanno riferimento al giorno appropriato nel/i mese/i successivo/i.
102+
</para>
103+
</listitem>
104+
</varlistentry>
105+
<varlistentry>
106+
<term><parameter>year</parameter></term>
107+
<listitem>
108+
<para>
109+
Il numero dell'anno può essere un valore a due o quattro cifre,
110+
con valori tra 0-69 mappati su 2000-2069 e 70-100 su
111+
1970-2000. Nei sistemi in cui time_t è un intero con segno a 32 bit, come
112+
nella maggior parte dei casi oggi, l'intervallo valido per <parameter>year</parameter>
113+
è compreso tra il 1901 e il 2038.
114+
</para>
115+
</listitem>
116+
</varlistentry>
117+
</variablelist>
118+
</para>
119+
</refsect1>
120+
121+
122+
<refsect1 role="returnvalues">
123+
&reftitle.returnvalues;
124+
<para>
125+
<function>mktime</function> restituisce il timestamp Unix degli argomenti
126+
forniti, oppure &false; se il timestamp non rientra in un intero PHP.
127+
</para>
128+
</refsect1>
129+
130+
<refsect1 role="changelog">
131+
&reftitle.changelog;
132+
<para>
133+
<informaltable>
134+
<tgroup cols="2">
135+
<thead>
136+
<row>
137+
<entry>&Version;</entry>
138+
<entry>&Description;</entry>
139+
</row>
140+
</thead>
141+
<tbody>
142+
<row>
143+
<entry>8.0.0</entry>
144+
<entry>
145+
<parameter>hour</parameter> non è più opzionale. Se hai bisogno di un timestamp Unix,
146+
usa <function>time</function>.
147+
</entry>
148+
</row>
149+
<row>
150+
<entry>8.0.0</entry>
151+
<entry>
152+
<parameter>minute</parameter>, <parameter>second</parameter>, <parameter>month</parameter>,
153+
<parameter>day</parameter> e <parameter>year</parameter> ora possono essere null.
154+
</entry>
155+
</row>
156+
</tbody>
157+
</tgroup>
158+
</informaltable>
159+
</para>
160+
</refsect1>
161+
162+
<refsect1 role="examples">
163+
&reftitle.examples;
164+
<para>
165+
<example>
166+
<title>Esempio di base di <function>mktime</function></title>
167+
<programlisting role="php">
168+
<![CDATA[
169+
<?php
170+
// Imposta il fuso orario predefinito da utilizzare.
171+
date_default_timezone_set('UTC');
172+
173+
// Stampa: July 1, 2000 is on a Saturday
174+
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000)) . "\n";
175+
176+
// Stampa qualcosa come: 2006-04-05T01:02:03+00:00
177+
echo date('c', mktime(1, 2, 3, 4, 5, 2006)) . "\n";
178+
]]>
179+
</programlisting>
180+
&example.outputs.similar;
181+
<screen>
182+
<![CDATA[
183+
July 1, 2000 is on a Saturday
184+
2006-04-05T01:02:03+00:00
185+
]]>
186+
</screen>
187+
</example>
188+
</para>
189+
<para>
190+
<example>
191+
<title>Esempio di <function>mktime</function></title>
30192
<para>
31-
Restituisce la Unix timestamp corrispondente all'argomento
32-
dato. Questa timestamp è un intero lungo contenente il numero di
33-
secondi tra la Unix Epoch (January 1 1970) e la data e orario
34-
specificati.
193+
<function>mktime</function> è utile per eseguire calcoli e validazioni sulle date
194+
poiché calcola automaticamente il valore corretto
195+
per input fuori intervallo. Per esempio, ognuna delle seguenti
196+
righe produce la stringa "Jan-01-1998".
35197
</para>
198+
<programlisting role="php">
199+
<![CDATA[
200+
<?php
201+
date_default_timezone_set('America/New_York');
202+
203+
echo date("c", mktime(0, 0, 0, 12, 32, 1997)) . "\n";
204+
echo date("c", mktime(0, 0, 0, 13, 1, 1997)) . "\n";
205+
echo date("c", mktime(0, 0, 0, 1, 1, 1998)) . "\n";
206+
echo date("c", mktime(0, 0, 0, 1, 1, 98)) . "\n";
207+
]]>
208+
</programlisting>
209+
&example.outputs.similar;
210+
<screen>
211+
<![CDATA[
212+
1998-01-01T00:00:00-05:00
213+
1998-01-01T00:00:00-05:00
214+
1998-01-01T00:00:00-05:00
215+
1998-01-01T00:00:00-05:00
216+
]]>
217+
</screen>
218+
</example>
219+
</para>
220+
<para>
221+
<example>
222+
<title>Uso di mktime per trovare date relative</title>
223+
<programlisting role="php">
224+
<![CDATA[
225+
<?php
226+
date_default_timezone_set('Asia/Tokyo');
227+
228+
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
229+
print date('c', $tomorrow) . "\n";
230+
231+
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
232+
print date('c', $lastmonth) . "\n";
233+
234+
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1) . "\n";
235+
print date('c', $nextyear) . "\n";
236+
]]>
237+
</programlisting>
238+
&example.outputs.similar;
239+
<screen>
240+
<![CDATA[
241+
2025-09-30T00:00:00+09:00
242+
2025-08-29T00:00:00+09:00
243+
2026-09-29T00:00:00+09:00
244+
]]>
245+
</screen>
246+
</example>
247+
<note>
36248
<para>
37-
Gli argomenti possono essere omessi nell'ordine da destra a sinistra; degli
38-
argomenti omessi saranno impostati con l'attuale valore accordandolo
39-
alla data e orario locale.
249+
Questo può essere più affidabile rispetto ad aggiungere o sottrarre semplicemente il numero
250+
di secondi in un giorno o in un mese a un timestamp a causa dell'ora
251+
legale.
40252
</para>
253+
</note>
254+
</para>
255+
<para>
256+
<example>
257+
<title>Ultimo giorno di un mese</title>
41258
<para>
42-
<parameter>is_dst</parameter> può essere impostato su 1 se l'orario è
43-
nell'ora legale, 0 altrimenti, o -1 (di default)
44-
se è sconosciuta la presenza dell'ora legale o
45-
meno. Se è sconosciuto, il PHP proverà ad impostarlo da se. Questo può
46-
causare un risultato non aspettato (ma non sbagliato).
259+
L'ultimo giorno di un determinato mese può essere espresso come il giorno "0"
260+
del mese successivo, non come il giorno -1. Entrambi i seguenti esempi
261+
produrranno la stringa "The last day in Feb 2000 is: 29".
47262
</para>
48-
<note>
49-
<para>
50-
<parameter>is_dst</parameter> è stato aggiunto nella verisone 3.0.10.
51-
</para>
52-
</note>
53-
<para>
54-
<function>mktime</function> è usata per fare calcoli tra date
55-
e validazioni, come può calcolare automaticamente il corretto
56-
valore per un valore fuori dall'intervallo valido. Per esempio, ognuna delle seguenti
57-
linee produce la stringa "Jan-01-1998".
58-
<example>
59-
<title>Esempio di <function>mktime</function></title>
60-
<programlisting role="php">
263+
<programlisting role="php">
61264
<![CDATA[
62-
echo date ("M-d-Y", mktime (0,0,0,12,32,1997));
63-
echo date ("M-d-Y", mktime (0,0,0,13,1,1997));
64-
echo date ("M-d-Y", mktime (0,0,0,1,1,1998));
65-
echo date ("M-d-Y", mktime (0,0,0,1,1,98));
265+
<?php
266+
267+
$lastday = mktime(0, 0, 0, 3, 0, 2000);
268+
echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n";
269+
270+
$lastday = mktime(0, 0, 0, 4, -31, 2000);
271+
echo 'Last day in Feb 2000 is: ', date('d', $lastday) . "\n";
66272
]]>
67-
</programlisting>
68-
</example>
69-
<parameter>Year</parameter> può avere sia 2 che 4 cifre,
70-
con valori compresi tra 0-69 e 2000-2069 oppure tra 70-99 e
71-
1970-1999 (sui sistemi dove time_t è un intero segnato a 32bit, come
72-
sulla maggior parte dei PC di oggi, l'intervallo valido per
73-
<parameter>year</parameter> è tra 1902 e 2037).
74-
</para>
75-
<para>
76-
L'ultimo giorno del mese dato può essere espresso come il giorno "0"
77-
del mese successivo, non come il giorno -1. Entrami i seguenti esempi
78-
produrranno la stringa "L'ultimo giorno di Feb 2000 è: 29".
79-
<example>
80-
<title>L'ultimo giorno del mese successivo</title>
81-
<programlisting role="php">
273+
</programlisting>
274+
&example.outputs;
275+
<screen>
82276
<![CDATA[
83-
$lastday = mktime (0,0,0,3,0,2000);
84-
echo strftime ("L'ultimo giorno di Feb 2000 è: %d", $lastday);
85-
86-
$lastday = mktime (0,0,0,4,-31,2000);
87-
echo strftime ("L'ultimo giorno di Feb 2000 è: %d", $lastday);
277+
Last day in Feb 2000 is: 29
278+
Last day in Feb 2000 is: 29
88279
]]>
89-
</programlisting>
90-
</example>
91-
</para>
92-
<simpara>
93-
Date con anno, mese e giorno uguali a 0 non sono considerate valide
94-
(altrimenti saranno considerate come 30.11.1999, quando hanno uno strano
95-
behavior).
96-
</simpara>
97-
<para>
98-
Guarda anche <function>date</function> e <function>time</function>.
99-
</para>
100-
</refsect1>
101-
</refentry>
280+
</screen>
281+
</example>
282+
</para>
283+
</refsect1>
102284

285+
<refsect1 role="seealso">
286+
&reftitle.seealso;
287+
<para>
288+
<simplelist>
289+
<member>La classe <classname>DateTimeImmutable</classname></member>
290+
<member><function>checkdate</function></member>
291+
<member><function>gmmktime</function></member>
292+
<member><function>date</function></member>
293+
<member><function>time</function></member>
294+
</simplelist>
295+
</para>
296+
</refsect1>
297+
</refentry>
103298
<!-- Keep this comment at the end of the file
104299
Local variables:
105300
mode: sgml
@@ -119,4 +314,4 @@ End:
119314
vim600: syn=xml fen fdm=syntax fdl=2 si
120315
vim: et tw=78 syn=sgml
121316
vi: ts=1 sw=1
122-
-->
317+
-->

0 commit comments

Comments
 (0)