项目作者: themaiby

项目描述 :
Convert MSSQL float time to datetime on PHP
高级语言: PHP
项目地址: git://github.com/themaiby/mssql-time-converter.git
创建时间: 2018-05-25T10:01:46Z
项目社区:https://github.com/themaiby/mssql-time-converter

开源协议:MIT License

下载


mssql-time-converter

Converts float type to DateTime object.
Uses in MSSQL, so you can make query

  1. SELECT CAST(43243.5382623071 AS datetime) as human_time;
  2. -- or
  3. SELECT CAST(GETDATE() AS float) as float_time;

But without milliseconds yet

Usage

Float to DateTime

  1. $converter = new MSSQLTimeConverter();
  2. $MSDateTime = 43243.5382623071;
  3. $humanDate = $converter->floatToDateTime($MSDateTime, 'Europe/Kiev');
  4. echo $humanDate->format('Y-m-d H:i:s.u'); // 2018-05-25 12:55:05.000000

DateTime to Float

  1. $timeNow = new DateTime('2018-05-25 12:55:05.000000', 'Europe/Kiev');
  2. $converter = new MSSQLTimeConverter();
  3. echo $converter->dateTimeToFloat($timeNow); // ~43243.5382623071

If you want to convert only time

  1. $time = "12:55:05";
  2. // You need to hardcore 1900-01-01. I hope it's temporary.
  3. $dateTime = new DateTime("1900-01-01 " . $time, 'Europe/Kiev');
  4. $converter = new MSSQLTimeConverter();
  5. echo $converter->dateTimeToFloat($timeNow); // ~43243.5382623071

TODO

  • take with milliseconds