js 中使用 时间datetime 类型到前端iOS 不兼容问题

需求和思路

需求文件 
需要重点是这个 结束时间 要展示倒记时。思路是用setTimeout()函数做。

遇到的问题

数据库传过来的日期类型在IOS 不能正确解析

代码

//倒计时函数  一秒钟执行一次
setInterval(daojishi,1000);
//倒计时函数   用each  遍历所有需要处理的时间
function daojishi(){
    $(".truetime").each(function(){
        var end= $(this).html();
        var end_on=formatStr(end);//解决ios手机不兼容问题
        var curtime=new Date();
        var endtime=new Date(end_on);
        var lefttime= parseInt((endtime.getTime()-curtime.getTime())/(1000));
        if (lefttime>0) {
            var day=parseInt(lefttime/(24*60*60));
            var hours=parseInt( (lefttime/(60*60))%24);
            var minutes=parseInt( (lefttime/(60))%60);
            var seconds=parseInt( (lefttime)%60);
            hours  =checkout(hours);
            minutes  =checkout(minutes);
            seconds  =checkout(seconds);
            var title =day+' 天 '+hours+' 小時 '+minutes+' 分 '+seconds+' 秒 ';
        }else{
            var title="时间结束"
        }
        $(this).next('span').html(title);
    });
};  

出现的问题

数据库拿出来的时间是  2016-06-08  这种时间iOS并不兼容 出现未定义的时间格式 所以用下面的函数转一下  成2016/06/08   

解决办法

function formatStr(str) {
    str=str.replace(/-/g,"/");
};

对程序的思考

倒计时中使用了

var curtime=new Date();
可以使用以下方法来确保 SQL Server datetime 类型数据不小于设置的时间: 1. 使用约束(Constraint):可以在表的定义添加一个约束来确保 datetime 列的值不小于设置的时间。例如,假设有一个名为 `YourTable` 的表,其有一个 datetime 类型的列 `YourDatetimeColumn`,要求其不小于当前时间,可以执行以下 SQL 语句: ```sql ALTER TABLE YourTable ADD CONSTRAINT CK_YourTable_YourDatetimeColumn CHECK (YourDatetimeColumn >= GETDATE()); ``` 这将为表 `YourTable` 的列 `YourDatetimeColumn` 添加一个约束,确保其值不小于当前时间。 2. 使用触发器(Trigger):可以创建一个触发器来在插入或更新数据时检查 datetime 列的值是否小于设置的时间,并阻止操作。例如,假设有一个名为 `YourTable` 的表,其有一个 datetime 类型的列 `YourDatetimeColumn`,要求其不小于当前时间,可以执行以下 SQL 语句: ```sql CREATE TRIGGER TR_YourTable_YourDatetimeColumn ON YourTable AFTER INSERT, UPDATE AS BEGIN IF EXISTS (SELECT 1 FROM inserted WHERE YourDatetimeColumn < GETDATE()) BEGIN RAISERROR ('YourDatetimeColumn must not be less than the current time.', 16, 1); ROLLBACK TRANSACTION; END END ``` 这将为表 `YourTable` 的列 `YourDatetimeColumn` 创建一个触发器,当插入或更新数据时,如果 datetime 列的值小于当前时间,将抛出一个错误并回滚事务。 请注意,以上方法仅为示例,具体实现可能需要根据实际情况进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值