我是这个论坛的新手,所以我希望我能在正确的地方提出问题。
我在从Appinventor2中创建的表单将日期时间插入谷歌电子表格时遇到问题;
在应用程序inventor2中,我创建了一个表格,用于填写谷歌电子表格。基本上我合并了Pizza Party的例子(http://appinventor.mit.edu/explore/ai2/pizzaparty.html)在这个例子中http://puravidaapps.com/spreadsheet.php使用谷歌电子表格而不是融合表。
用户选择他想要订单的分钟数,然后在一个按交货时间排序的表中查看所有订单。
问题A)首先,我想将当前的日期时间+所需的延迟保存到谷歌电子表格中,并根据这个新的日期时间对表格进行排序。
1) 当我使用块"call clock format time"+"call clock-addminutes"时,电子表格中会填充一个文本,但我无法按交付日期时间对表格进行排序。事实上,我相信无论是上午/下午还是一个月的哪一天,都会对数字进行排序。例如,我得到的不是凌晨4点、6点、2点、3点,而是:下午2点、下午3点、4点、早上6点。
2) 然后,我试图删除"调用时钟格式时间"块,并在谷歌表单中保留字段format=text但谷歌电子表格中填充了以下内容:java.util.GregorianCalendar[时间=1395531335908,areFieldsSet=true,宽大=true,区域=欧洲/都柏林,第一个工作日=2,最小工作日第一个工作周=4,ERA=1,YEAR=2014,MONTH=2,WEEK_OF_YEAR=12,WEEK-OF_MONTH=4,DAY_OF_MONTH=22,DAY_OF_YEAR=81,DAY_OF_WEEK=7,DAY_OFF_WEEK_IN_MONTH=4,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=35,SECOND=35,MILLISECOND=908,zone_OFFSET=0,DST_OFFSET=0]
3) 然后我试图删除"调用时钟格式时间"块,并在谷歌表单中更改了字段format=time但谷歌电子表格中却没有任何内容。
4) 我试着使用分段块,但过了一段时间,我意识到块"格式化时间"实际上返回的格式是:"hh:mm:ss AM/PM"因此选择这5个字符是不够好的,因为它没有考虑am/pm元素以及月份的日期。
5) 我找到了一个临时解决方案,将所需的交付时间定义为一个新的全局变量,并通过连接块".hoor instant"one_answers".minute instant"提取hh:mm格式的字符串。然而,这并不是最终的解决方案,因为我提取的当然是一个文本字符串,在排序时,01:10将始终被认为小于23:50,例如,无论日期如何。
那么,有没有一种方法可以真正保存在谷歌电子表格中,而不是一系列文本,而是日期和时间?
问题B)其次,我只想过滤/显示谷歌电子表格中交货时间到期不超过1小时的行(以及未来交货时间的订单,例如从现在起2小时内)。
我尝试使用一些Google可视化API查询语言命令,更改Google电子表格的url(如WHERE"now()-Delivery Time<60 mins)"(记不起我写的确切代码),但没有成功。
有人知道如何过滤我的结果吗?
提前感谢
alterettore
所以有几点需要注意。
- 如果你使用的是Taifun的例子,你会注意到,当你使用表格向谷歌电子表格提交数据时,第一列总是一个时间戳,即使你没有提交日期或时间。尝试发送当前日期/时间是多余的-继续使用谷歌提供的内容
- 谷歌电子表格(和Excel)将日期/时间存储为数字。如果你想在GS中存储日期,最好的方法不是格式化文本,而是发送一个数字。使用AppInventor计算所需的数字。例如,今天(4月27日)的GS是41756。今天中午是41756.5
- 要生成这个数字,请从AI的毫秒函数开始。注意:GS和AI都使用毫秒,但它们有不同的0点,所以你必须稍微处理一下结果。我过去在人工智能中使用的公式是:
GS Date/Time = (Clock1.GetMillis(Clock1.Now) / 86400000) + 25569
希望这能有所帮助!