Saltar al contenido principal
Versión: Siguiente

Fecha

Las variables, campos o expresiones de tipo fecha pueden estar comprendidas entre 1/1/100 y 31/12/32.767.

Aunque el modo de representación de fechas por C_DATE permite trabajar con fechas hasta el año 32 767, ciertas operaciones que pasan por el sistema imponen un límite inferior.

Nota: en el manual de Referencia del Lenguaje 4D, los parámetros de tipo Fecha en las descripciones de los comandos se denominan Fecha, salvo que se indique lo contrario.

Constantes literales de tipo fecha

Una constante literal de tipo fecha está rodeada de signos de exclamación (!...!). Una fecha debe estar estructurada utilizando el formato ISO (!AAAA-MM-DD!). Estos son algunos ejemplos de constantes de fechas:

!1976-01-01!
!2004-09-29!
!2015-12-31!

Una fecha null es especificada por !00-00-00!.

Consejo: el Editor de código incluye un acceso directo para introducir una fecha null. Para escribir una fecha null, introduzca el signo de exclamación (!) y presione Intro.

Notas:

  • Por razones de compatibilidad, 4D acepta entradas de fecha utilizando el formato del sistema con años de dos dígitos, como !12/04/98!. Se asume que un año de dos dígitos se encuentra en el siglo XX o en el XXI según sea mayor o menor de 30, a menos que esta configuración por defecto se haya cambiado utilizando el comando SET DEFAULT CENTURY.
  • Si ha marcado la opción "Utilizar la configuración regional del sistema" ( ver Página Métodos), debe utilizar el formato de fecha definido en su sistema. Generalmente, en un entorno estadounidense, las fechas se introducen en la forma mes/día/año, con una barra "/" que separa los valores.

Operadores de fechas

OperaciónSintaxisDevuelveExpressionValor
DiferenciaFecha – FechaNumber!2017-01-20! - !2017-01-01!19
AdiciónFecha + NúmeroFecha!2017-01-20! + 9!2017-01-29!
RestaFecha - NúmeroFecha!2017-01-20! - 9!2017-01-11!
IgualFecha = FechaBoolean!2017-01-20! - !2017-01-01! =!2017-01-01!True
!2017-01-20! !2017-01-01! =!2017-01-01!False
DesigualdadFecha # FechaBoolean!2017-01-20! !2017-01-20! # !2017-01-01!True
!2017-01-20! !2017-01-20! # !2017-01-20!False
Mayor queDate > DateBoolean!2017-01-20! > !2017-01-01!True
!2017-01-20! > !2017-01-20!False
Menor queDate < DateBoolean!2017-01-20! - !2017-01-01! < !2017-01-20!True
!2017-01-20! < !2017-01-20!False
Mayor o igual queDate >= DateBoolean!2017-01-20! >=!2017-01-01!True
!2017-01-01!>=!2017-01-20!False
Menor o igual queDate <= DateBoolean!2017-01-20! - !2017-01-01! <= !2017-01-20!True
!2017-01-20! <= !2017-01-01!False

Conversion of dates from JavaScript

Como las fechas en JavaScript son objetos, se envían a 4D como texto que contiene su forma JSON como cualquier otro objeto. Este principio se aplica en particular cuando se utilizan comandos JSON o Áreas Web.

The JSON form of JavaScript Date objects follows the ISO 8601 standard, for example "2013-08-23T00:00:00Z". It is your responsibility to convert this text into a 4D date. Hay dos soluciones disponibles:

Using the JSON Parse command:

 var $dateIso : Texto // recepción de una fecha en formato ISO
var $date4D : Date
$date4D:=JSON Parse("\""+$dateIso+"\"";Is date))

Utilizando el comando Date:

 var $dateIso : Text // recepción de una fecha en formato ISO
var $date4D : Date
$date4D:=Date($dateIso)

Note the difference between these two solutions: JSON Parse respects the conversion mode set using the SET DATABASE PARAMETER (if any), while Date is not subject to this. Conversion using the Date command always takes the local time zone into account.

nota

When the current date storage setting is date type (default), JSON date strings in "YYYY-MM-DD" format are automatically handled as date values by the JSON Parse and Date commands.