小编Lau*_*ant的帖子

没有时区的Javascript日期对象

我最近为基于云的系统实现了一个基于 webview 的移动应用程序,但我遇到了一个令人沮丧的问题。

我们按以下格式将日期存储在数据库中:

2016-10-11T11:09:00
Run Code Online (Sandbox Code Playgroud)

在桌面应用程序中,它正确显示为2016/10/11 11:09:00

但是,在移动应用程序中(我们使用 phonegap,因此它是基于 HTML + JS 的),当我通过 PHP 调用从数据库中获取此日期字符串时,我使用 'new Date("2016-10-11T11: 09:00")',它显示时区转换,例如,如果我在 GMT + 2,它将是2016/10/11 13:09:00

我怎样才能防止这种情况?

每当我在视图上显示日期时,我都会使用 date.toString("yyyy/MM/dd HH:mm:ss") 格式。

此外,在跨多个平台存储和显示日期时间方面,我愿意接受任何建议。我发现这个yyyy-mm-ddThh:mm:ss格式非常好并且被广泛使用,直到我遇到了这个 javascript 问题。

(据您所知,我不是 javascript 或 HTML 专家)

LE:我不想将日期转换为 UTC 字符串,我希望实际的 Date 对象与数据库值一致,因为我通过 AngularJS 将它连接到 HTML 日期时间选择器。

html javascript datetime date cordova

6
推荐指数
1
解决办法
3万
查看次数

在单元格中写入缓慢的VBA宏

我有一个VBA宏,它将数据写入清除的工作表,但它真的很慢!

我正在从Project Professional中实例化Excel.

Set xlApp = New Excel.Application
xlApp.ScreenUpdating = False
Dim NewBook As Excel.WorkBook
Dim ws As Excel.Worksheet
Set NewBook = xlApp.Workbooks.Add()
With NewBook
     .Title = "SomeData"
     Set ws = NewBook.Worksheets.Add()
     ws.Name = "SomeData"
End With

xlApp.Calculation = xlCalculationManual 'I am setting this to manual here

RowNumber=2
Some random foreach cycle
    ws.Cells(RowNumber, 1).Value = some value
    ws.Cells(RowNumber, 2).Value = some value
    ws.Cells(RowNumber, 3).Value = some value
             ...............
    ws.Cells(RowNumber, 12).Value = some value
    RowNumber=RowNumber+1
Next
Run Code Online (Sandbox Code Playgroud)

我的问题是,foreach周期有点大.最后,我将获得大约29000行.在漂亮的OK计算机上完成此操作需要超过25分钟.

是否有任何技巧可以加快写入细胞的速度?我做了以下事情:

xlApp.ScreenUpdating = False …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba ms-project

5
推荐指数
1
解决办法
1万
查看次数

Office VSTO 加载项可能存在权限问题 - HRESULT 0x80004004 (E_ABORT)

我们开发了一个 C# Office VSTO 加载项,它与正在运行的 Outlook 实例进行通信(或启动一个新实例),并且在尝试创建 Outlook 任务或约会时,它在某些客户 PC 上显示出存在权限问题的迹象。 。

异常消息如下:

操作中止(HRESULT 异常:0x80004004 (E_ABORT))

这发生在这里:

Outlook.Account DefaultAccount = null;
Outlook.Application outlookApp = GetOutlookApp();    //returns Application object of running Outlook instance / creates a new instance - it works for them.

DefaultAccount = GetAccountForFolder(outlookApp);    //returns the default account of the user. Tried it with a simple setup, only one account etc. - it works for them
String defaultemailaddress;

//CODE RUNS UNTIL THIS POINT
if (DefaultAccount == null)    //if somehow …
Run Code Online (Sandbox Code Playgroud)

c# outlook vsto office-addins outlook-addin

5
推荐指数
1
解决办法
1033
查看次数

根据标题更改表格单元格的背景颜色

我正在 javascript 中动态构建日历(html 表)。我想要带有灰色背景颜色的周六和周日列。

当我将其他单元格添加到日历时,我想检查单元格列标题,检查它的内部 html text/class/id 并在周末为单元格着色。

这是我添加带有日期起始字母的列标题的地方:

<th bgcolor='#c1c1c1' width=20>S</th>" 
<th width=20>M</th>" 
<th width=20>T</th>" 
<th width=20>W</th>" 
<th width=20>T</th>" 
<th width=20>F</th>" 
<th bgcolor='#c1c1c1' width=20>S</th>" 
Run Code Online (Sandbox Code Playgroud)

我试过这段代码,但它不能正常工作......

var table = document.getElementById("calendarTable");
var rows = table.getElementsByTagName("tr");
for (var z = 0; z < rows.length-1; z++) {
    for (var y = 0; y < rows[z].cells.length; y++) {
        if(rows[z].cells[y].headers=="S")
            rows[z].cells[y].style.backgroundColor = "#c1c1c1";
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我想要实现的只是一个小代码片段,它遍历整个表格元素,并检查每个单元格标题的innerhtml内容或id,并相应地更改它的背景颜色。

后来编辑:

表格截图:

在此处输入图片说明

问题是,该表是根据我们当前所在的月份构建的,我们不一定知道星期六或星期日的索引。(图中12月1日是星期一,所以这是一个非常幸运的情况)

周六和周日在表中不固定。日历从当月的第一天开始,然后获取它的日期。我知道这有点奇怪,但这就是其他人设计的方式,我必须使用它。

蓝条标记了一个时间间隔,但那个东西已经在起作用了。

我构建整个表的代码会很长,以使其易于理解。

html javascript css html-table sharepoint-apps

4
推荐指数
1
解决办法
2万
查看次数

将毫秒精度添加到表中的MySQL时间戳列

有一个带有TIMESTAMP列的日志表,当前的精度可降至秒。

这还不够,因为有时会在同一秒内发生多个事件,因此我们无法确定事件发生的顺序。

我知道可以用自动递增的ID(将它们按发生的顺序排列)来解决,但是我要使用毫秒精度的时间戳,因为我想看看两个事件之间发生了多少时间。

如果我将列的默认值从CURRENT_TIMESTAMP更改为CURRENT_TIMESTAMP(3)则会在MySQL Workbench中收到以下错误:

Executing:
ALTER TABLE `my_db`.`logs` 
CHANGE COLUMN `timestamp` `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ;

Operation failed: There was an error while applying the SQL script to the database.
ERROR 1067: Invalid default value for 'timestamp'
SQL Statement:
ALTER TABLE `my_db`.`logs` 
CHANGE COLUMN `timestamp` `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(6)
Run Code Online (Sandbox Code Playgroud)

我已经不想在表中使用数据了,所以我想更改此表。

实际上是否可以通过这种方式更改表,因此从现在开始,timestamp列将更加精确?

PS:我尝试添加具有更高精度的新(完全空白)列,但是它抛出了相同的错误。

php mysql sql

2
推荐指数
1
解决办法
2324
查看次数