---
title: How to validate a best-before date?
description: Validating a date code will help operators ensure that date codes are correctly assigned and within specification. This article guides you through validating the date field based on the  Product Life in a form.
---

[Skip to content](https://support.ofsystems.com/how-to-validate-a-best-before-date#main-content)

![OFS\_Circle.png\]](https://support.ofsystems.com/hs-fs/hubfs/OFS_Circle.png?height=45&name=OFS_Circle.png)

- [OFS Customer Portal](https://support.ofsystems.com/)
- [Main Website](https://ofsystems.com/)
- [Contact Us](https://www.ofsystems.com/contact-us?)
- [Service Portal](https://ofsystems.atlassian.net/servicedesk/customer/portal/1)

Open main navigation

Close main navigation

- [OFS Customer Portal](https://support.ofsystems.com/)
- [Main Website](https://ofsystems.com/)
- [Contact Us](https://www.ofsystems.com/contact-us?)
- [Service Portal](https://ofsystems.atlassian.net/servicedesk/customer/portal/1)

 Welcome to the OFS Customer Portal

- There are no suggestions because the search field is empty.

1. [OFS Customer Portal](https://support.ofsystems.com/?hsLang=en)
2. [How To Questions](https://support.ofsystems.com/how-to-questions?hsLang=en)
3. [Flow - Validations](https://support.ofsystems.com/how-to-questions?hsLang=en#flow-validations)

# How to validate a best-before date?

## Validating a date code helps operators ensure that dates are correctly assigned and within specification. This article guides you through validating a date field based on the Product Life set for that product.

Note: when a form is triggered, OFS records a timestamp in seconds, called an epoch timestamp. The "Convert to Date" tool converts this epoch timestamp into a date.

#### **Step 1 — Invalidate dates beyond the maximum**

Mark the field invalid when the entered date is later than the maximum allowed — no greater than the product's Product Life in days:

```
data["Date"]>dateAdd(date(alert["createTime"]),jobmeta["ProductLife"],"days")
```

![](https://lh7-us.googleusercontent.com/IYFFvOgOYPw4SuMNKSbJnfYlTlNcSzTfjWavU_vsRd-7x3jxoTzxYKpzR3IIVg3baDvAZy8gdeBQPXJOilXTgs6Xf376q6D3ER0-errcG65PfrnbSe7eyhGz2X0UHoz8CmiM4XB0hi14IhmJEivaA98)

#### **Step 2 — Invalidate dates before the minimum**

Mark the field invalid when the entered date is earlier than allowed. The `+1` accounts for the entire day the form was raised, since the timestamp is recorded in seconds rather than from midnight:

```
dateAdd(data["Date"],(+1),"days")<dateAdd(date(alert["createTime"]),jobmeta["ProductLife"],"days")
```

![](https://lh7-us.googleusercontent.com/gMuOzGsCeYxZ_SLfSYTR6XlSdavd9Zj5BnAb0V8oK0bmUSExaSlq4IyMk9efzxcLYw9TnGt1wGqgu8SjD9kQz9h1LWzTY8BhH_vnAfgUtf8USIGKjP7eMvsr4nqBKXAcid5js3CNwi4FBQWNHReHhDQ)

#### **Step 3 — Mark the target date as valid**

```
data["Date"]<=dateAdd(date(alert["createTime"]),jobmeta["ProductLife"],"days")
```

![](https://lh7-us.googleusercontent.com/fkcvw0htPKUnHy7nRa7wqOL_QiJDxr0tuNiscn7ijHoGfd9NnVMob-hV7l0IyactOCK1rcifJKjzalhLt4CWNBj4C6cd7mX5nRwRZ4ZPkEvKTzPv41xQmsUR9srL5W9IXv2-bG3PjFc78NQgcUHXVY8)

#### **What the operator sees**

![](https://support.ofsystems.com/hs-fs/hubfs/BBDValidationGIF-gif-1.gif?width=670&height=191&name=BBDValidationGIF-gif-1.gif)

- [Getting Started](https://support.ofsystems.com/getting-started?hsLang=en#main-content)

    - [Console: The Basics](https://support.ofsystems.com/getting-started?hsLang=en#console-the-basics)
    - [Analytics: The Basics](https://support.ofsystems.com/getting-started?hsLang=en#analytics-the-basics)
    - [Fusion Manager: The Basics](https://support.ofsystems.com/getting-started?hsLang=en#fusion-manager-the-basics)
    - [OFS-Flow Training : The Basics](https://support.ofsystems.com/getting-started?hsLang=en#ofs-flow-training-the-basics)
    - [OFS-Go](https://support.ofsystems.com/getting-started?hsLang=en#ofs-go)
    - [MayvnAI](https://support.ofsystems.com/getting-started?hsLang=en#mayvnai)
- [Help & Support](https://support.ofsystems.com/help-support?hsLang=en#main-content)

    - [Troubleshooting](https://support.ofsystems.com/help-support?hsLang=en#troubleshooting)
    - [OFS in a Box](https://support.ofsystems.com/help-support?hsLang=en#ofs-in-a-box)
    - [Routers](https://support.ofsystems.com/help-support?hsLang=en#routers)
    - [PLCs](https://support.ofsystems.com/help-support?hsLang=en#plcs)
- [Success with MayvnAI](https://support.ofsystems.com/success-with-mayvnai?hsLang=en)
- [Training Videos](https://support.ofsystems.com/training-videos?hsLang=en#main-content)

    - [Operator Console](https://support.ofsystems.com/training-videos?hsLang=en#operator-console)
    - [OFS Analytics](https://support.ofsystems.com/training-videos?hsLang=en#ofs-analytics)
    - [Fusion-Manager](https://support.ofsystems.com/training-videos?hsLang=en#fusion-manager)
    - [OFS-Flow](https://support.ofsystems.com/training-videos?hsLang=en#ofs-flow)
    - [OFS-Go](https://support.ofsystems.com/training-videos?hsLang=en#ofs-go)
- [How To Questions](https://support.ofsystems.com/how-to-questions?hsLang=en#main-content)

    - [Administration](https://support.ofsystems.com/how-to-questions?hsLang=en#administration)
    - [Operator Console](https://support.ofsystems.com/how-to-questions?hsLang=en#operator-console)
    - [Analytics](https://support.ofsystems.com/how-to-questions?hsLang=en#analytics)
    - [Fusion Manager](https://support.ofsystems.com/how-to-questions?hsLang=en#fusion-manager)
    - [Fusion Manager - Alerts & Services](https://support.ofsystems.com/how-to-questions?hsLang=en#fusion-manager-alerts-services)
    - [Flow](https://support.ofsystems.com/how-to-questions?hsLang=en#flow)
    - [Flow - Validations](https://support.ofsystems.com/how-to-questions?hsLang=en#flow-validations)
    - [Flow - Conditional Expression & Triggers](https://support.ofsystems.com/how-to-questions?hsLang=en#flow-conditional-expression-triggers)
    - [APIs](https://support.ofsystems.com/how-to-questions?hsLang=en#apis)
- [FAQs](https://support.ofsystems.com/faqs?hsLang=en#main-content)

    - [Operator Console](https://support.ofsystems.com/faqs?hsLang=en#operator-console)
    - [Fusion Manager](https://support.ofsystems.com/faqs?hsLang=en#fusion-manager)
    - [Analytics](https://support.ofsystems.com/faqs?hsLang=en#analytics)
    - [OFS-Flow](https://support.ofsystems.com/faqs?hsLang=en#ofs-flow)
- [Case Studies](https://support.ofsystems.com/case-studies?hsLang=en#main-content)

    - [Mavyn AI](https://support.ofsystems.com/case-studies?hsLang=en#mavyn-ai)
- [OFS Guides](https://support.ofsystems.com/ofs-guides?hsLang=en)
- [Webinars](https://support.ofsystems.com/webinars?hsLang=en)

[![](https://support.ofsystems.com/hs-fs/hubfs/Logo%20Medium_no%20words.png?width=128&height=68&name=Logo%20Medium_no%20words.png)](http://ofsystems.com)

Operations Feedback Pty Ltd

7/627 Chapel St, South Yarra, VIC 3123  
+61 3 8684 9859

<https://www.ofsystems.com/> <https://www.linkedin.com/company/operations-feedback-systems/> [mailto:support@ofsystems.com](mailto:support@ofsystems.com)

Copyright © 2025, Operations Feedback Systems Pty Ltd.