Form Validation - Before Date
diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php
index a98f49b..69ea1ac 100644
--- a/system/language/english/form_validation_lang.php
+++ b/system/language/english/form_validation_lang.php
@@ -57,6 +57,7 @@
 $lang['form_validation_in']		= 'The {field} field must be within a predetermined list: {param}.';
 $lang['form_validation_not_in']		= 'The {field} field must not be within: {param}.';
 $lang['form_validation_date']		= 'The {field} field must be a proper date.';
+$lang['form_validation_before_date']		= 'The {field} field must be lesser than {param}.';
 
 /* End of file form_validation_lang.php */
 /* Location: ./system/language/english/form_validation_lang.php */
\ No newline at end of file
diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php
index 74a5b87..e5a1fae 100644
--- a/system/libraries/Form_validation.php
+++ b/system/libraries/Form_validation.php
@@ -1516,6 +1516,20 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * Date should be lesser than $before_date
+	 *
+	 * @param	string
+	 * @param	string
+	 * @return	bool
+	 */
+	public function before_date($date, $before_date)
+	{
+		return (strtotime($date)!==FALSE && strtotime($before_date)!==FALSE) ? (strtotime($date) < strtotime($before_date)) : FALSE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Is a Natural number  (0,1,2,3, etc.)
 	 *
 	 * @param	string
diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst
index cbf8028..645d7d2 100644
--- a/user_guide_src/source/libraries/form_validation.rst
+++ b/user_guide_src/source/libraries/form_validation.rst
@@ -966,6 +966,7 @@
 **in**                    Yes        Returns FALSE if the form element is not within a predetermined list.                         in[red,blue,green]
 **not_in**                Yes        Returns FALSE if the form element is within a predetermined list.                             not_in[red,blue,green]
 **date**                  No         Returns FALSE if the form element is not a proper date.
+**before_date**           Yes        Returns FALSE if the form element is greater than a predetermined date.                       before_date[2015-01-27]
 **alpha**                 No         Returns FALSE if the form element contains anything other than alphabetical characters.
 **alpha_numeric**         No         Returns FALSE if the form element contains anything other than alpha-numeric characters.
 **alpha_numeric_spaces**  No         Returns FALSE if the form element contains anything other than alpha-numeric characters