Lua 仿PHP的strtotime

由于工作原因,两周前开始研究Lua,因为之前的项目要由php改成Lua实现,而一些php里现成的东西,在Lua里就需要手写,于是就有了下面的代码。写的比较粗糙,权当做个记录吧。

--[[
获取时间戳
--]]
function strtotimestamp(timeToConvert)

    local ymdhis = "(%d+)-(%d+)-(%d+) (%d+):(%d+):(%d+)"

    local runyear,runmonth,runday = getymd(timeToConvert);
    local runhour,runminute,runseconds = gethis(timeToConvert);
    local convertedTimestamp = os.time({
                                           year = runyear,
                                           month = runmonth,
                                           day = runday,
                                           hour = runhour,
                                           min = runminute,
                                           sec = runseconds
                                       });
    return convertedTimestamp;
end

--[[
获取年、月、日
--]]
function getymd(str)
    local ymd =  "(%d+)-(%d+)-(%d+)"
    local md =  "(%d+)-(%d+)"
    local runyear, runmonth, runday = str:match(ymd);

    if runyear then
        return runyear, runmonth, runday;
    else
        local runmonth, runday = str:match(md);
        if runmonth then
             return nil,runmonth, runday;
        else
            return nil,nil,nil;
        end
    end

end

--[[
获取时、分、秒
--]]
function gethis(str)
    local his = "(%d+):(%d+):(%d+)"
    local hi = "(%d+):(%d+)"

    local runhour, runminute, runseconds = str:match(his);
    if runhour then
        return runhour, runminute, runseconds;
    else
        local runhour, runminute = str:match(hi);
        if runhour then
             return runhour, runminute, nil;
        else
            return nil,nil, nil;
        end
    end

end

Lua 仿PHP的strtotime

时间: 2024-10-30 10:41:07

Lua 仿PHP的strtotime的相关文章

lua(仿类)

Account = { balance = 0 } function Account:deposit(v) self.balance = self.balance + v end function Account:new(o) o = o or {} setmetatable(o, self)--Account表本身作为o的metatable self.__index = self--自己作为自己的原型?? return o end a = Account:new{balance = 0} --

luvit 被忽视的lua 高性能框架(仿nodejs)

luvit 被忽视的lua 高性能框架(仿nodejs) 来源 https://www.cnblogs.com/rongfengliang/p/7856329.html luvit  开放模式和nodejs 一样,但是因为生态以及小众语言的问题,使用的人比较少,但是从目前 来看更新速度还是比较快的,但是从现有lua 开发框架来说一般倾向于使用nginx+lua 的模式,尽管 有人说luvit 性能比nodejs 还高,还是没有比较广泛的普及 1. 安装 curl -L https://githu

lua迭代器和仿制药for

不管是什么样的结构,你只需要同意遍历集合可以称为迭代器的所有元素.lua常用来形容叙事功能迭代器.个元素.每个迭代器都须要保存一些状态来知道当前处于什么位置和怎样进行下一次迭代. 对于这种任务.闭包提供了非常好的机制来完毕.一个典型的闭包结构包括两个函数:一个是闭包自身,一个是创建闭包的工厂. 比如,我们能够写过简单的list迭代器,让他只返回值. function values( t ) local i = 0; return function() i = i + 1;return t[i]

使用vue.js仿一个链家

Vue全家桶+localstorage+socket.io简单仿一个链家 在线预览地址首先上项目和预览地址 https://luxroid.com/lianjia/#/Github地址 https://github.com/mixihome/lianjia 注意 如果要在本地运行安装完依赖之后如果报错请手动使用淘宝镜像安装node-sass和sass-loader 确保可以运行建议使用F12移动端模式预览???? 使用到的技能点Vue.js : 前端页面展示Vuex : 全局状态通信axios

仿博客园编辑器的插入代码 代码高亮功能

代码下载地址:http://download.csdn.net/detail/dfg727/7616305 1. a.配置tinymce,增加一个insert code按钮    b.处理显示页面中展开收缩的高亮部分事件 var tinymce_config = function (selector) { tinymce.init({ selector: selector, theme: "modern", menubar: false, plugins: [ "previe

LUA和C++绑定的一些天然的麻烦

最近在看Luatinker的源代码,打算自己改(仿写)写搞一个简单的封装C++和LUA的结合的库,结果发现其实麻烦和困惑比想象的多. 比如这些点: 1)有时候使用模板的时候,引用会退化. classtype &,经过模板参数后,会退化为class type,这个在LuaTinker的实现里面就有问题,你会发现tinker的引用就没有起到作用. 这个我打算研究一下<C++模板> 2)基本(非object)类型(比如int)的应用和指针的使用问题? 因为大部分C++ to LUA的参数传递

wrapper for lua

考虑使用已经有的dll,要写wrapper,使得在lua中能调用dll里的函数,嗯,参考<Programming in lua>,然后仿写luars232. 一.函数定义 先分析一个函数的写法,其它函数类似: /* * error, written_len = port:write(data [, timeout_ms]) */ static int lua_port_write(lua_State *L) { int ret = 0; int argc = 0; unsigned int t

Lua 项目分析、创建新场景

创建完一个新项目之后,我们可以简单的看一看这个项目的文件组成,有这么一个文件层次结构 几个proj.*文件夹就不用说了,是对应的平台的解决方案,res专门存放我们的游戏资源,scripts存放我们的lua代码,sources中有我们熟悉的AppDelegate类,我们主要常用的就两个文件夹,res和scripts. 好吧,还是再打开scripts文件夹看下,该文件下有main.lua,它是程序lua脚本的启动文件: function __G__TRACKBACK__(errorMessage)

UWP-消息提示(仿Android)

原文:UWP-消息提示(仿Android) 在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那种提示框. 先说说比较简单的吧,通过系统Toast通知方式(和Android的Toast是有区别的额,更像Android里的Notification),关于这种方式,在这里就不贴代码了,MSDN上讲的很清楚(快速入门:发送 Toast 通知),需要注意的事作为应用内消息提示弹出框,应该不要带音效(有