Skip to content

Check and set MSSQL universal date format used by Laravel to 'Ymd' to ensure universal compatibility

Notifications You must be signed in to change notification settings

tobya/laravel-mssql-dateformat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MSSQL Dateformat Fixer

There is an international date format (ISO standard) (YYYY-MM-DD) Y-m-d that is supposed to be universal, however the MSSQL implementation is flawed and is NOT universal and incorrectly interprets Y-m-d as Y-d-m which is beyond idiotic. Laravel uses Y-m-d as their international format, which can lead to errors depending on SQL SERVER Settings.

There is one format Ymd which is absolutely gauranteed to always be interpreted by SQLServer as Ymd. This command patches the file in illuminate library to use Ymd instead of Y-m-d. I Requested that the change be made in the illuminate library but it was felt the change was too big to be made.

I hope this is helpful to those of you out there using MSSQL with PHP/Laravel.

Installation

Install with composer

composer require tobya/laravel-mssql-dateformat

To Run

Run by calling the larvel command

artisan mssql:check-universal-date --update

You can run without --update to do the check without patching the file.

Configuration

It is suggested that you add the following to your project composer.json file so this command is automatically run on install and update.

"scripts": {
        "post-update-cmd": [
            "@php artisan mssql:check-universal-date --update"
        ],
        "post-install-cmd": [
            "@php artisan mssql:check-universal-date --update"
        ]
   }

This is due to the fact that whenever composer update or composer install is run and the illuminate package is updated it will overwrite the SqlServerGrammar.php with the origional version, so it is necessary to call the command whenever this has the potential of happening. If no change has been made to the file it will not be modified.

Further reading on why this is necessary

This is discussed in several places online

About

Check and set MSSQL universal date format used by Laravel to 'Ymd' to ensure universal compatibility

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages