Aller au contenu principal
Version : 21

Date

Les variables, champs ou expressions de type Date peuvent être compris entre 1/1/100 et 31/12/32767.

Bien que le mode de représentation des dates puisse fonctionner avec des dates jusqu'à l'année 32 767, certaines opérations passant par le système imposent une limite inférieure.

Note : Dans le manuel de référence du langage 4D, les paramètres de type Date dans les descriptions des commandes sont appelés Date, sauf spécification explicite.

Constantes littérales de type date

Une constante littérale de type date est comprise entre deux points d'exclamation (!…!). Une date doit être structurée avec le format ISO (!YYYY-MM-DD!). Voici quelques exemples de constantes dates :

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

Une date nulle s’écrit !00-00-00!.

Astuce : L'éditeur de code comprend un raccourci pour saisir une date nulle. Pour entrer une date nulle, tapez un point d’exclamation (!) et appuyez sur Entrée. et appuyez sur Entrée.

Notes :

  • Pour des raisons de compatibilité, 4D accepte la saisie de dates en utilisant le format du système avec des années sur deux chiffres, telles que !12/04/98!. Une année sur deux chiffres est supposée appartenir au XXe ou au XXIe siècle si elle est respectivement supérieure ou inférieure à 30, sauf si ce paramètre par défaut a été modifié à l'aide de la commande SET DEFAULT CENTURY.
  • Si vous avez coché l'option "Utiliser langage français et paramètres régionaux système" (cf. Page Méthodes), vous devez utiliser le format de date défini dans votre système. Généralement dans un environnement français, une date est saisie sous la forme jour/mois/année, une barre oblique "/" séparant les valeurs.

Opérateurs sur les dates

OpérationSyntaxeRetourneExpressionValeur
DifférenceDate - DateNumber!2017-01-20! - !2017-01-01!19
AdditionDate + NumériqueDate!2017-01-20! + 9!2017-01-29!
SoustractionDate - NumériqueDate!2017-01-20! - 9!2017-01-11!
EgalitéDate = DateBoolean!2017-01-20! = !2017-01-01!True
!2017-01-20! !2017-01-20!False
InégalitéDate # DateBoolean!2017-01-20! !2017-01-20!True
!2017-01-20! !2017-01-20!False
Supérieur àDate > DateBoolean!2017-01-20! > !2017-01-20!True
!2017-01-20! > !2017-01-20!False
Inférieur àDate < DateBoolean!2017-01-20! < !2017-01-20!True
!2017-01-20! < !2017-01-20!False
Supérieur ou égal àDate >= DateBoolean!2017-01-20! >=!2017-01-01!True
!2017-01-01!>=!2017-01-20!False
Inférieur ou égal àDate <= DateBoolean!2017-01-20! <= !2017-01-20!True
!2017-01-20! <= !2017-01-01!False

Conversion of dates from JavaScript

Since dates in JavaScript are objects, they are sent to 4D as text containing their JSON form like any other object. This principle is implemented in particular when using JSON commands or Web Areas.

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. Two solutions are available:

Using the JSON Parse command:

 var $dateIso : Text // reception of a date in ISO format
var $date4D : Date
$date4D:=JSON Parse("\""+$dateIso+"\"";Is date))

Using the Date command:

 var $dateIso : Text // reception of a date in ISO format
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.

note

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.