Handling Time Values Using JavaScript

Description

Loftware does not have the ability to manage time stamps.  Our date/time data can not be manipulated as a time function because our data has no formatting and is handled as simple text.  Through the use of JavaScript time data can be manipulated.  The attached sample shows how date time data can be pulled from the system without a date/time field an then be manipulated and printed in a different format on the label

Solution

The script in the sample pulls in the system date, adds 3 hours to it, and then prints it on the label in the format defined by the system in the Region and Language | Formats settings.

Requirements

Loftware version 9.5.0 or higher, and an understanding of Java Script language

How to Implement the Solution

Here is the script used in the sample label attached.

Copy
Time Handling
<pre class="syntaxhighlighter-pre" xml:space="preserve">var jdate=new Date(); // returns current date 
label.fields.field.(@name=='RawDate').@data=jdate; 
var jtime=jdate.getTime(); // changes date to miliseconds since 1/1/1970 00:00:00 
label.fields.field.(@name=='JavaTime').@data=jtime; 
var newtime=jtime+10800000;  // add 3 hours (in milliseconds) 
label.fields.field.(@name=='TimePlus3').@data=newtime; 
var newdate=new Date(newtime); // change back to date 
label.fields.field.(@name=='AdjustedDate').@data=newdate; 
newdate=newdate.toLocaleTimeString(); // change date to time using system preferences
//output to label 
label.fields.field.(@name=='AdjustedTime').@data=newdate;</pre>

Result

The output result is the current time plus 3 hours and displayed in format:  h:mm:ss PM/AM