嘿日
我的问题基于该主题:
Read excel xlsx file using simplexlsx in php
是否有可能在simplexlsx.class中捕获日期格式问题?
因为我使用这个脚本动态xlsx到数据库脚本,我几乎不能说我在哪里使用日期格式或更好的单元格有日期格式。
那么如何在一段时间内或for循环中将unixstamp($ excelDateTime)用于未知列?
function value( $cell ) {
// Determine data type
$dataType = (string) $cell['t'];
switch ($dataType) {
那是值类的开头......是否可以为数据类型“Date”添加一个switch case?如果是的话怎么样?
示例:
我有3张桌子:
1:ID,col1,col2,col3
2:ID,col1,日期,col3
3:ID,col1,col2,日期
我有一个<选择>选择哪一个是需要的,但是错过了列的类型,我想显示其中一个正确的日期而不是“41928”UNIX-DATE?
到目前为止 问候
答案 0 :(得分:0)
识别单元格中日期/时间值的唯一方法是查看数字格式掩码。
几乎完全取自PHPExcel的函数:
function isDateTimeFormatCode($pFormatCode = '') {
// General contains an epoch letter 'e', so we trap for it explicitly here
if (strtolower($pFormatCode) === 'general')
return FALSE;
// Typically number, currency or accounting (or occasionally fraction) formats
if ((substr($pFormatCode,0,1) == '_') || (substr($pFormatCode,0,2) == '0 ')) {
return FALSE;
}
// Try checking for any of the date formatting characters that don't appear within square braces
if (preg_match('/(^|\])[^\[]*[eymdHs]/i',$pFormatCode)) {
// We might also have a format mask containing quoted strings...
// we don't want to test for any of our characters within the quoted blocks
if (strpos($pFormatCode,'"') !== FALSE) {
$segMatcher = FALSE;
foreach(explode('"',$pFormatCode) as $subVal) {
// Only test in alternate array entries (the non-quoted blocks)
if (($segMatcher = !$segMatcher) &&
(preg_match('/(^|\])[^\[]*[eymdHs]/i',$subVal))) {
return TRUE;
}
}
return FALSE;
}
return TRUE;
}
// No date...
return FALSE;
}